I apologize for the wall of text, but I wanted to thoroughly explain my choices and reasoning for this docker-compose.yml. I hope you find it useful.
I am working on writing up some quality help/instructions for Lemmy instance admins. This is targeted toward those that are newer to Lemmy and Docker, but even those that know a thing or two might learn something from me. I have been a sysadmin for over 20 years, so I know some things.
I thought I'd share the first complete page I have written. I'd love some feedback if you have any to share.
Looks great at a glance. I admittedly got pretty frustrated and gave up doing the straight docker install primarily with the nginx portion of my setup. The lemmy instructions were lacking. After trying for 2 days I just used the recommended Ansible playbook and it worked beautifully and now I've gone back and reconfigured what I wanted to after the fact.
So this is biggly helpful. Thanks! Im gonna give it a thorough looking at next time I fiddle with my config. Got it saved.
I recommend using override feature in docker compose instead of editing the compose directly. That way it will be easier to pull updated file from the GitHub and receive updates.
Thanks for your comment, but I don't see much value in pulling a new copy of the docker-compose.yml from the Lemmy GitHub. The only things I would be updating when Lemmy updates is the tag/version. If they added new environment variables some time in the future I could certainly take a look at their updated compose file to see the changes but I wouldn't want to pull it down and replace my custom compose.
I specifically don't care for their (Lemmy devs) choices for logging, docker networking, and the built in nginx, so removing and simplifying all that was my main goal. Everyone has their own way of doing things, and this is mine.
I will probably take a look at your Traefik configs and add them as a separate document for those that don't want to use NPM. My goal is to add a subsection for most of the current revproxy choices.
Yeah. I found the official compose… let’s say leaves a lot to desire… so we had slightly different approaches to similar problems. I don’t want their built in nginx so I override it with a simple alpine that quits. But I also chose to use override for exactly the reason you mentioned (in event if they add new config stuff into compose).
Glad to see I’m not the only one finding there are rooms for improvement. Thanks for sharing your thoughts with the community!
I was expecting your document to be some kind of tutorial, but it seems like you wrote it for people who already know what they're doing. I would need to understand the "normal" way of doing it first before I would be able to understand what you're talking about in your document. (Note: I'm new to Docker, which is why I gave up on setting up my own Lemmy server. It would be nice if someone could write a tutorial specifically for people who are new to Docker.)
If you want to help people set up their instances, I don't think your document should have so much focus on the differences between your method and the official method, because that just adds to the confusion. It would be more helpful to just focus on your method and explain it in a way that noobs can understand.
I do appreciate your feedback, but I think at a minimum that anyone trying to run a Lemmy instance in Docker should know how to install docker and docker compose and how to run basic commands like docker compose up -d. There are many tutorials out there for doing just that and I'm not trying to reinvent the wheel. Once you have gotten that part done my document kicks in and picks up where the official documentation is currently lacking (in my opinion).
I do explain a lot, but I did my best to explain it in terms that most anyone could understand.
I will take your feedback to heart and maybe try to write a step by step tutorial for people who are completely new to Docker as well.
I do not recommend using Ansible. It adds additional requirements and complexities that are unnecessary. Ansible is a great tool for managing multiple servers and software installs, in my opinion it is not the right tool to install Lemmy on a single instance. My install instructions require only that you have docker and docker compose installed.
That said, you could easily replace the docker-compose.yml that Ansible set up for you with the one I am providing. Just don't run Ansible against your server again or it will wipe out your changes.
Yea im well versed in docker (years of homelab) not saying its perfect but the ansible playbook had my droplet up in 15 min. I see where your coming from though and will likely just manage the compose myself now
I don't use unraid, so I'd have no way to develop and test it. But I think all you really need to do is install docker and docker compose and then just follow my guide.
Valid. Unraid ships with docker, I'll play around and see if I can launch with this. Any idea if this works as a portainer stack? (obviously I'm a sucker for docker gui)