3.1 KiB
id, title, tags, daily
| id | title | tags | daily |
|---|---|---|---|
| 2026-06-07T17:40:12-0400 | 2026-06-07 17:40:12 | 2026-06-07 |
2026-06-07 17:40:12
It is trivial to get home media server apps running and LAN accessible,
and not so much harder to get them accessible from outside either
if you have no reservations about using IP directly
(i.e. http://81.168.249.237:8096),
but mobile receiver apps don't usually play nice
without certified HTTPS anyway.
Setting Up DNS
Buy a Domain
This step is one of the easiest and, at the risk of drinking-ones-own-kool-aid, I recommend most people do it soon even if they don't have plans for a home network yet. For the time being, if you have a reasonably unique name a domain is one of the cheapest things you could spend money on.
nick-decarlo.comfor example: $10.46 per year
For that same price
I get to send emails from gmail@zanemeyers.com
and confuse the hell out of people.
Add DNS Records
For each service
create a Type A record with the name of the service
pointing at your public IP,
which you can find with
curl ifconfig.me
or at WhatIsMyIp.com.
Configure Encryption Mode
Without this step redirection will not work with Cloudflare's proxy.
SSL/TLS > Overview > Configure
Set to "Full (Strict)" and Save.
At this point the domain is configured and it shouldn't need to be touched again.
Setting Up the Reverse Proxy Server
I decided to use a decade-and-change-old laptop for a reverse proxy server
It is probably possible to forgo the server entirely and just run Caddy on WSL
I'm assuming we've already booted Ubuntu Server and done the initial setup, if for no other reason than because I did that years ago so I can't remember all that entailed.
Set Up a Reverse Proxy
A reverse proxy will let us map requests for <service>.zanemeyers.com
to internal IP's and ports.
There are a few options, but I used Caddy because it automatically issues and renews SSL certificates.
Install Caddy
sudo apt update
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
Configure Caddy
open Caddy's configuration with your favorite text editor
sudo vim /etc/caddy/Caddyfile
and create entries for each app. For example using Jellyfin:
jellyfin.zanemeyers.com {
# <desktop local ip>:<app port>
reverse_proxy 192.168.1.20:8096
}
After saving the new config, reload the service to apply the changes.
sudo systemctl reload caddy
Setting Up
In your router settings. forward TCP 80 (HTTP) and 443 (HTTPS) to your reverse proxy server.
That was the last step. I don't know how to end this note.