Bewusst kein auto-trigger: kontrolle bleibt beim menschen, wer wann
auf welche subdomain deployt. Aufruf via "Actions" → "Build + Deploy
SPA" → "Run workflow", target ist 'svelte' (default), 'staging' oder
'prod'. 1:1 abbild der lokalen scripts/deploy-svelte.sh-logik:
1. snapshot ziehen (Deno)
2. SvelteKit bauen (Node)
3. __SITE_URL__-substitution
4. __HTML_LANG__-substitution pro detail-HTML aus snapshot/output
5. FTPS-upload pro datei via curl --tls-max 1.2 (All-Inkl-friendly)
6. live-check via curl
Voraussetzung: SVELTE_FTP_*, STAGING_FTP_* als github-secrets hinterlegen.
AUTHOR_PUBKEY_HEX + BOOTSTRAP_RELAY existieren bereits aus publish-pipeline.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Etappe 3 des prerender-snapshot-plans (variante 1: minimal — kein
neuer workflow, deploy bleibt manuell via scripts/deploy-svelte.sh):
- 'Snapshot'-step laeuft nach publish, ruft deno-snapshot-cli auf
- output (index.json + posts/*.json + .last-snapshot.json) wird als
github-actions-artifact fuer 30 tage aufgehoben — debug-pfad falls
ein deploy-bug nachvollzogen werden muss
- AUTHOR_PUBKEY_HEX + BOOTSTRAP_RELAY werden aus existierenden secrets
uebernommen, keine neuen secrets noetig
Reihenfolge "publish dann snapshot": neue events muessen erst auf den
relays sein, bevor sie gesnapshottet werden koennen. Bei publish-fail
laeuft snapshot nicht — gewollt, weil unklarer relay-stand zu
fehlerhaftem snapshot-output fuehren wuerde.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>