Since I had a hard time, and ive seen a few people still having issues. None of the posts exactly helped with my setupI decided to post my current docker-compose lemmy conf and explain a few things.
Some steps are skipped such
Also the docker-compose in the docs wouldnt federate properly until i explicitly added ports to the compose.
FIRST STEPS
First off im running lemmy on oracle free tier arm instance with 4 cores 24 gb of ram. This vps is not accessible from the internet. ON another free box I run nginx Proxy Manager which connects to any vm on my home or other networks I want accessible.
I connect to the proxy box by using tailscale but any vpn should work
DOCKER INSTALL
So here is the compose file.
the lemmy external host is the IP address of the proxy box. I used the tailscale ip .
If you are not using an arm box remove the arm tag for the image.
You also need some custom locations in proxy manager. A new entry for each of these.
Location = /api
IP = internal IP of your server host
port = 8536 (lemmy port, not the lemmy-ui port)
Repeat the above for each of the others with locations as:
/pictrs
/feeds
/nodeinfo
With this setup only the box with nginx proxy manager is actually accessible while lemmy runs on a different one that is closed. The only thing different from the setup in the docs is ports listed for everything so they can communicate with nginx over tailscale.
I was just playing with this yesterday trying to get the Docker image working on ARM and I went down a rabbit hole trying to build a new image for ARM, not realizing that one is already built/distributed 🤦