We're the creators of Lemmy, Ask Us Anything. Starts Monday, 7 Aug, 1500 CEST
This is an opportunity for any users, server admins, or interested third parties to ask anything they'd like to @nutomic@lemmy.ml and I about Lemmy. This includes its development and future, as well as wider issues relevant to the social media landscape today.
Note: This will be the thread tmrw, so you can use this thread to ask and vote on questions beforehand.
Last time I checked, it wanted me to modify multiple upstream files before composing the container and manually create directories instead of using Docker volumes β for multiple images.
Also the compose file contains a database and a reverse proxy for no reason.
Whereβs the simple Docker container that does not want me to do that? Just deploy, set some environment variables, use one volume for persistent data and the sqlite database and thatβs it?
A single Docker container is not possible because Lemmy requires multiple different images (postgres, pict-rs, lemmy-ui, lemmy). Supporting two different databases would be too much effort. In the end Lemmy is optimized for large instances with hundreds or thousands of users, not for tiny instances. So more difficult installation is not a major concern.
Why canβt those be bundled? I need 3 containers and another database container just to have an instance. Also, none of those is easy to setup. All of those are messy and annoying and need me to fiddle with upstream files.
Containers should be reusable. None of those is reusable for anything else.
So more difficult installation is not a major concern.
In the long run this is where it will fail. Make it intentionally hard and annoying to setup will lead to people not setting it up.
Edit: Been there, done that, failed. Since then I always try to make my stuff as easy to setup and use as possible.
Its not intentionally hard. If you see a way to simplify it, pull requests are always welcome. But running multiple services in a single docker container is generally a bad idea.
If you see a way to simplify it, pull requests are always welcome
All components that are needed to run a Lemmy instance could be provided as single stack and the containers could be made configurable using environment variables (usernames, passwords, and DB locations). Database and reverse proxy should be handled completely separated from the "Lemmy containers" and the "Lemmy stack". manually editing upstream files before composing the containers should be avoided.
Since I do not use MS GitHub I cannot help with issues, PRs, or anything else there, sorry.
multiple services
This is what I think about. While those 3 containers contain different programs: are they really different services and not just different components of the same service?
So its a bash script which manages the docker-compose install for you? I really wouldnt want to maintain almost 2000 lines of bash. Plus such a script has extra complexity and has a chance to break. I think it makes more sense to rely on standard, widespread tools like docker-compose which you can find documentation for all over the internet. Though if you prefer to use that installation method over the official one, theres nothing wrong with it.
In addition to that: I am pretty sure the script assumes an unconfigured system, βstealingβ ports 443 and 80, and completely messing up container and volume names (if any volumes are actually used).
As far as I know I think the only not messy solution is setting up a VM and let Lemmy do whatever it wants there and expose only one port mapped to whatever inside-VM port is needed and use my reverse proxy to forward requests on the dedicated subdomain to that VM.