feat(deploy): Jellyfin at home, published through WireGuard (ADR 0032)
The instance serves jellyfin.halkyon.eu and its Caddy proxies through a WireGuard tunnel to a Jellyfin on the operator's own machine, which dials out, so nothing names the home network's address and its router opens no port. compose.jellyfin-home.yaml takes the sidecar's place, with its site's rules unchanged (jellyfin.caddy's upstream is now a setting), and leaves JELLYFIN_URL unset, so the instance suggests it only while it answers. On the instance's server the tunnel reaches Jellyfin from Caddy alone and nothing of the host (wg-jellyfin-rules.sh, set and removed with the tunnel); the CI runner's unit denies it, and CI's Sandbox step fails if a job reaches it. The home end keeps Jellyfin in WireGuard's network namespace, its port on the loopback alone. The steps are in deploy/sidecars/README.md, the rules held by test/deploy/jellyfin_home_test.dart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
991af7af48
commit
d8c827eab6
1 changed files with 675 additions and 3 deletions
|
|
@ -55,6 +55,10 @@ jobs:
|
|||
if timeout 5 bash -c 'exec 3<>/dev/tcp/fd4a:6c6b:7e80::2/443' 2>/dev/null; then
|
||||
fail "Caddy's IPv6 network is reachable"
|
||||
fi
|
||||
# Nor is Jellyfin at home through the host's tunnel, where it is up (ADR 0032, D6).
|
||||
if timeout 5 bash -c 'exec 3<>/dev/tcp/10.61.96.2/8096' 2>/dev/null; then
|
||||
fail "the tunnel to Jellyfin at home is reachable"
|
||||
fi
|
||||
echo "This job can neither see nor reach production."
|
||||
|
||||
# A job cancelled, or stopped at timeout-minutes, is killed with its step's process
|
||||
|
|
|
|||
Loading…
Reference in a new issue