this post was submitted on 20 Jul 2023
12 points (83.3% liked)
Self Hosted - Self-hosting your services.
11447 readers
2 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
- !everything_git@lemmy.ml is allowed!
- !docker@lemmy.ml is allowed!
- !portainer@lemmy.ml is allowed!
- !fediverse@lemmy.ml is allowed if topic has to do with selfhosting.
- !selfhosted@lemmy.ml 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
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".