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.
https://gist.github.com/Death916/77c8d2c0d0cb62019a5aba71f8292166
now here is the lemmy.hconf that should be in same dierectory as compose file. Edit with the same db as in the compose.
https://gist.github.com/Death916/161928397f100f4bebac66cb909e6d99
Proxy setup
Make an entry for your server. i used the tailscale ip with the port in the compose 1236.. Now you need to add this to the advanced tab.
https://gist.github.com/Death916/6edcca3ec6c3df9df7301256963bade1
This nginx.conf is default from the lemmy project used for the webserver and also needs to be in same directory as the compose.
https://gist.github.com/Death916/0da841d45923cded1e479427f1cde6e8
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 didnt want that box exposed directly and wanted to point it at my existing proxy. probably would have been easier not to.
Yeah I get that. I have mine running behind Cloudflare where they proxy the dns on their own.