From 299647e9e8459f35333de0e8d91f7376847c9247 Mon Sep 17 00:00:00 2001 From: Oliver G Date: Sun, 15 Feb 2026 13:36:19 +0100 Subject: [PATCH] docs: add cloudpanel setup guide for hetzner deployment --- README.md | 1 + docs/CLOUDPANEL_SETUP.md | 64 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 docs/CLOUDPANEL_SETUP.md diff --git a/README.md b/README.md index 43d4a7f..046135f 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,7 @@ Signal senden: - Architektur / Umsetzung: `docs/IMPLEMENTATION_PLAN.md` - Server-Deployment (Linux + Nginx + systemd): `docs/DEPLOYMENT.md` +- CloudPanel-Setup (Hetzner): `docs/CLOUDPANEL_SETUP.md` - Betrieb / Runbook: `docs/OPERATIONS.md` - GitHub Publish Ablauf: `docs/GITHUB_PUBLISH.md` - Connector-Konfiguration: `docs/open_data_sources.json` diff --git a/docs/CLOUDPANEL_SETUP.md b/docs/CLOUDPANEL_SETUP.md new file mode 100644 index 0000000..03057d4 --- /dev/null +++ b/docs/CLOUDPANEL_SETUP.md @@ -0,0 +1,64 @@ +# CloudPanel Setup (Hetzner) + +## Ziel + +StaySense unter `staysense.vanityontour.de` mit CloudPanel + Let's Encrypt + Reverse Proxy auf API. + +## DNS + +- `A`: `staysense.vanityontour.de -> 88.99.209.207` +- `AAAA`: `staysense.vanityontour.de -> 2a01:4f8:10a:3ae1::2` + +## CloudPanel Eintraege + +1. Site-Typ: `Static HTML` +2. Domain: `staysense.vanityontour.de` +3. Site User: z. B. `staysense-site` +4. SSL: `Let's Encrypt` aktivieren +5. Redirect HTTP->HTTPS aktivieren + +## Webroot + +CloudPanel legt typischerweise an: + +- `/home/staysense-site/htdocs/staysense.vanityontour.de` + +Frontend deployen: + +```bash +rsync -a --delete /opt/staysense/src/ /home/staysense-site/htdocs/staysense.vanityontour.de/ +chown -R staysense-site:staysense-site /home/staysense-site/htdocs/staysense.vanityontour.de +``` + +## Reverse Proxy fuer API + +In die vHost-Config der Site aufnehmen: + +```nginx +location /api/ { + proxy_pass http://127.0.0.1:8787/; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; +} +``` + +## Backend Services + +- `staysense-api.service` (API) +- `staysense-import.timer` + `staysense-import.service` (Datenimporte) + +Status: + +```bash +systemctl is-active staysense-api.service +systemctl is-active staysense-import.timer +``` + +## Health Checks + +```bash +curl -s https://staysense.vanityontour.de/api/health +curl -I http://staysense.vanityontour.de +curl -I https://staysense.vanityontour.de +```