t҉̠̙ǵ̣̞̄ͪ͜x̸̱͚̳ͫ͐̑̈ͯͣ̚n̒͌҉͉̦̜̝ͅ

  • 1 Post
  • 4 Comments
Joined in 419 years
cake
Cake day: May 1st, 2443

help-circle

  • 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.

    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 :)