vault backup: 2026-06-07 18:53:41
This commit is contained in:
@@ -0,0 +1,123 @@
|
|||||||
|
---
|
||||||
|
id: 2026-06-07T17:40:12-0400
|
||||||
|
title: 2026-06-07 17:40:12
|
||||||
|
tags: []
|
||||||
|
daily: "[[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.com` for 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](https://www.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](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux)
|
||||||
|
|
||||||
|
I'm assuming we've already booted [Ubuntu Server](https://ubuntu.com/download/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](https://caddyserver.com/)
|
||||||
|
because it automatically issues and renews SSL certificates.
|
||||||
|
|
||||||
|
##### Install Caddy
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo vim /etc/caddy/Caddyfile
|
||||||
|
```
|
||||||
|
|
||||||
|
and create entries for each app.
|
||||||
|
For example using [Jellyfin](https://jellyfin.org/):
|
||||||
|
|
||||||
|
```caddy
|
||||||
|
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.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
Reference in New Issue
Block a user