reddit’s r/homelab and r/selfhost were my go-tos, but Spez decided to kill the golden goose, so I left. I’ve been trying to help the Kbin and Lemmy communities grow, but we’ll see how it goes…
Oh! Also Tildes! It’s been established for a while but the user base isn’t huge since it’s still in beta. LMK if you’d like an invite.
I did find this there… indicating there is some activity around self-hosting:
https://tildes.net/~comp/16yc/self_hosters_share_your_reasons_for_self_hosting_and_favorite_apps
This may help: https://caddy.community/t/using-caddy-as-a-reverse-proxy-in-a-home-network/9427
I am just starting the same journey and have also experienced the lack of good guides for noobs. Most guides are on integrating more complex setups.
Follow-up: I have Caddy working!
Here’s my baseline before starting:
anything.mydomain.net
After briefly trying out a couple of somewhat ingrated Caddy projects others have done, I decided they were too specific to their set-ups and did not make my life easier. I tossed them out and went simple. I wanted something super easy to understand, and thus easy to troubleshoot.
First I set it up in Docker. I created a really, really simple docker compose file:
version: "3.7" services: caddy: image: caddy:alpine restart: unless-stopped ports: - "1080:80" # Because Synology DSM reserves 80 for itself - "10443:443" # Because Synology DSM reserves 443 for itself - "10443:443/udp" # Because Synology DSM reserves 443 for itself volumes: # next four lines are default # - $PWD/Caddyfile:/etc/caddy/Caddyfile # - $PWD/site:/srv # - caddy_data:/data # - caddy_config:/config - /var/docker/caddy/config/Caddyfile:/etc/caddy/Caddyfile - /var/web:/srv # serve this by default? - /var/docker/caddy/data:/data - /var/docker/caddy/config:/config volumes: data: external: true config: external: true
(If the machine you are running Caddy on doesn’t reserve ports 80 and 443 for itself like Synology DSM does, you don’t need the ridiculous high ports I mapped. Just do 80:80 and 443:443.)
Then I created a simple Caddyfile.
web.fakeme.net, www.fakeme.net { # This connects to the default Synology web service reverse_proxy 192.168.2.15:80 }
This tells Caddy: When you get a request for web or www, send it to the machine at 192.168.2.15 using port 80.
Then I added to it, one service at a time to make sure things worked at each step
paperless.fakeme.net { reverse_proxy 192.168.2.15:8008 } whoami.fakeme.net { reverse_proxy 192.168.2.15:8009 } comics.fakeme.net { reverse_proxy 192.168.2.15:8010 } plex.fakeme.net { reverse_proxy 192.168.2.15:32400 } speedtest.fakeme.net { reverse_proxy 192.168.2.15:8011 }
You’ll note I am doing nothing fancy here – no hostnames, no dynamic Docker container checks, none of that crap. It’s brittle but it is dead simple.
Now that I have something simple working, I can get fancier if I feel like it.