this post was submitted on 06 Aug 2023
1457 points (98.9% liked)
Announcements
23319 readers
1 users here now
Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.
You can also find major news on join-lemmy.org
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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.
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.
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.
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?