this post was submitted on 20 Jul 2023
12 points (83.3% liked)
Self Hosted - Self-hosting your services.
11447 readers
6 users here now
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules
- No harassment
- crossposts from c/Open Source & c/docker & related may be allowed, depending on context
- Video Promoting is allowed if is within the topic.
- No spamming.
- Stay friendly.
- Follow the lemmy.ml instance rules.
- Tag your post. (Read under)
Important
Beginning of January 1st 2024 this rule WILL be enforced. Posts that are not tagged will be warned and if not fixed within 24h then removed!
- Lemmy doesn't have tags yet, so mark it with [Question], [Help], [Project], [Other], [Promoting] or other you may think is appropriate.
Cross-posting
- [email protected] is allowed!
- [email protected] is allowed!
- [email protected] is allowed!
- [email protected] is allowed if topic has to do with selfhosting.
- [email protected] is allowed!
If you see a rule-breaker please DM the mods!
founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
6 Containers for one application … And I thought the original Docker setup was annoying. Why include SSL stuff and a reverse proxy? I am pretty sure most people already have that set up.
Edit:
Just checked the readme in detail. They suggest
rm -R
’ing the Docker volumes directory to, I quote, “rm any persistent volumes”. Also manually messing with upstream data before manually creating the image again.I don’t see how this is any better than the original mess. It just adds more containers to the stack and gives very questionable advices.
An “EZ-mode” for me would be one image containing all the relevant Lemmy-specific software (lemmy, lemmy_ui pictrs and maybe even the database) and needing one volume mapped to one path in the container.
Maybe for people who only want to host lemmy and nothing else
That's because each container has a different set of responsibilities. ie. a Database container doesn't need Rust installed, the database container should not need to go down, even when you upgrade the Lemmy/LemmyUI containers.
Second to this is how Lemmy is distributed - as multiple containers, one for the UI code and one for the backend/API, while pictrs is a completely different project to Lemmy. This is all pretty standard practice, though I agree Lemmy could probably be a single container (combining API+Frontend). The benefit of this is the face you can upgrade just the UI or API at a time, or accept UI changes before upgrading your API.
The original mess is poorly documented, and results in inconsistent results due to how they use multiple levels of nginx reverse proxy, and the fact you need to do a bunch of configuration on top of just installing their repo.
In the instructions, you will see I've documented a way to run other containers under Traefik, or you could run it under an existing Traefik reverse proxy installation (which is what I do!)
It reads like you've not familiar with Traefik, or how modern stacks fit together. The amount of containers is not the issue, and building a modern service as a single container that bundles the Database and pictrs is not really even possible, or desired (since you might want to run multiple frontend containers to handle more load, and scale the backend seperately)
Also, if you read the title above where you read the "suggestion for rm'in the volume is under "I fucked up - I want to wipe all data and start again" :) That's demonstrates where the data is stored and how to remove it completely if you want to start again - This is a common practice when developing/testing containers.
Happy to field any further questions about it :)
Like in your documentation, where I edit upstream files before building the container? Where's the volume? Where are the environment variables to configure Lemmy? Manually editing container files or creating directories isn't what I call "modern stacks".
... which is only and exclusively used by Lemmy and no other application I ever heard of. So please enlighten me: What other applications use this thing?
I simply don't care about Traefik, because I already use Nginx Proxy Manager.
You're still suggest recursively removing
volumes/
which is a stupid suggestion because that would also remove all non-Lemmy volumes. You should clarify that or give more precise information than "ah, just recursively remove the directory where all your container's persistent data is stored".