feat(infra): migrate self-hosted backend to netralax.de

Move Supabase + LiveKit from the netralax.cloud VPS to a new netralax.de server. Adds the migration runbook (docs/), one-time move scripts (scripts/migrate/), and prod Caddy/LiveKit config templates (infra/). Repoints the desktop publish/changelog URLs and prod ops config to .de. JWT_SECRET + VAPID copied identically so already-installed clients keep working; the new server also serves the legacy .cloud hostnames.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
byGalax
2026-06-02 19:39:04 +02:00
parent 588b843904
commit 5bc30c950c
15 changed files with 1807 additions and 11 deletions
+3 -2
View File
@@ -8,8 +8,9 @@ All commands read shared config from `config.sh`.
1. Copy your SSH key to the server so scripts don't prompt for a password:
```
ssh-keygen -t ed25519 # only if you don't already have one
ssh-copy-id prox@46.225.156.249
ssh prox@46.225.156.249 'echo ok'
# PROD now points at the netralax.de VPS (user "debian"; see config.sh).
ssh-copy-id debian@141.95.34.204
ssh debian@141.95.34.204 'echo ok'
```
2. Make the scripts executable:
```
+13 -5
View File
@@ -5,16 +5,24 @@
# Customize here when the server IP / domains change — all other scripts pick
# the values up automatically.
export PROD_SERVER="46.225.156.249"
export PROD_USER="prox"
# End state after the netralax.de migration. The old .cloud VPS was
# 46.225.156.249 — for the one-time move (data dump/restore, storage rsync)
# use scripts/migrate/, which knows the old host explicitly. Fill in the new
# server IP once the netralax.de VPS exists, then this becomes the live config
# for all push-migrations / push-edge-function / create-invite / logs scripts.
export PROD_SERVER="141.95.34.204"
# Login user on the new .de VPS is "debian" (the old .cloud VPS used "prox").
export PROD_USER="debian"
# Paths on the remote server.
export PROD_SUPABASE_DIR="/opt/supabase"
export PROD_LIVEKIT_DIR="/opt/livekit"
# Public domains (served via Caddy on the same VPS).
export PROD_DOMAIN_SUPABASE="supabase.netralax.cloud"
export PROD_DOMAIN_LIVEKIT="livekit.netralax.cloud"
# Public domains (served via Caddy on the new VPS). Caddy also keeps serving
# the legacy supabase.netralax.cloud / livekit.netralax.cloud vhosts (same
# backends) so already-installed clients keep working until they auto-update.
export PROD_DOMAIN_SUPABASE="supabase.netralax.de"
export PROD_DOMAIN_LIVEKIT="livekit.netralax.de"
# SSH helper: forwards the standard `-o StrictHostKeyChecking=accept-new` so
# first connections don't prompt. Override SSH_OPTS from the environment if