64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
AzA Intern Portal – Deployment auf Hetzner
|
||
==========================================
|
||
|
||
Ziel-URL: https://intern.aza-medwork.ch
|
||
Server-Pfad: /root/aza-intern-portal
|
||
|
||
Voraussetzungen
|
||
---------------
|
||
- Docker und docker-compose auf dem Server
|
||
- Caddy als Reverse-Proxy (bestehend)
|
||
- DNS A-Record: intern.aza-medwork.ch -> Server-IP (178.104.51.177)
|
||
|
||
Schritte
|
||
--------
|
||
1. Backup erstellen (vor Deploy):
|
||
mkdir -p /root/backups/aza_intern_portal_predeploy_YYYYMMDD_HHMMSS
|
||
cp -a /root/aza-intern-portal /root/backups/.../ (falls vorhanden)
|
||
|
||
2. Verzeichnis anlegen und Dateien hochladen:
|
||
mkdir -p /root/aza-intern-portal
|
||
(rsync/scp des intern_portal-Inhalts)
|
||
|
||
3. .env anlegen (Werte NICHT ins Repo committen):
|
||
cp .env.example .env
|
||
AZA_INTERN_SESSION_SECRET=<zufälliger 64-Zeichen-Hex-String>
|
||
AZA_INTERN_ADMIN_USER=<admin-benutzername>
|
||
AZA_INTERN_ADMIN_PASSWORD=<sicheres-passwort>
|
||
|
||
4. Docker starten:
|
||
cd /root/aza-intern-portal
|
||
docker compose build
|
||
docker compose up -d
|
||
|
||
5. Healthcheck:
|
||
curl -s http://127.0.0.1:8088/health
|
||
|
||
6. Caddy (nur wenn DNS bereit):
|
||
- Caddyfile sichern: cp /etc/caddy/Caddyfile /root/backups/.../Caddyfile.bak
|
||
- Snippet aus Caddyfile.snippet ergänzen
|
||
- caddy validate --config /etc/caddy/Caddyfile
|
||
- systemctl reload caddy
|
||
|
||
7. Im Browser testen: https://intern.aza-medwork.ch
|
||
|
||
Wichtig
|
||
-------
|
||
- /root/aza-app (produktive AzA-App) NICHT verändern
|
||
- Portal läuft nur auf 127.0.0.1:8088, extern nur via Caddy
|
||
- Keine Patientendaten, API-Keys oder Passwörter hochladen
|
||
|
||
Backup (manuell)
|
||
----------------
|
||
Regelmässig sichern:
|
||
/data/intern.db (Docker-Volume aza_intern_data)
|
||
/data/uploads/
|
||
|
||
Beispiel:
|
||
docker compose exec aza-intern ls /data
|
||
docker cp aza-intern-portal:/data/intern.db ./backups/intern_YYYYMMDD.db
|
||
|
||
2FA
|
||
---
|
||
Für eine spätere Version vorgesehen. Session-Cookies sind httpOnly (Starlette SessionMiddleware).
|