Files
MABEA/deploy/README.md
T
patrickandClaude Sonnet 5 c71df1ac4d
CI / backend-tests (push) Successful in 1m8s
CI / frontend-build (push) Successful in 25s
Karte 12: systemd-Timer für den täglichen Eskalations-Prüflauf
scripts/eskalation_pruefen.py ruft den Service direkt gegen die DB auf (kein
HTTP/Admin-Token nötig, gleiches Muster wie scripts/create_admin.py).
mabea-eskalation.timer läuft täglich 06:00 Uhr. Zeitschwellen bleiben in der
DB (eskalation_konfiguration), nicht im Timer.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
2026-09-04 18:28:46 +02:00

44 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Deployment MABEA
Zielserver: siehe Projekt-Memory (Debian 13, kein Docker-Zwang, Prompt 19).
## Server-Grundausstattung (einmalig)
```bash
scp -i ~/.ssh/id_claude -r deploy root@<server>:/root/mabea-deploy
ssh -i ~/.ssh/id_claude root@<server>
cd /root/mabea-deploy
chmod +x install_server.sh
DB_PASSWORD='<sicheres-passwort>' APP_DOMAIN=<domain-oder-ip> ./install_server.sh
```
Installiert PostgreSQL + nginx, legt DB-Rolle/Datenbank an, richtet nginx als Reverse-Proxy vor `127.0.0.1:8000` ein. Ausgegebene `DATABASE_URL` sichern.
## Backend deployen (später, nach Sprint-Fortschritt)
1. `backend/` auf den Server kopieren (z. B. nach `/opt/mabea/backend`), `.venv` dort anlegen, `pip install -e ".[dev]"` bzw. ohne `dev`-Extra für Produktion.
2. `.env` aus `backend/example.env` ableiten, `DATABASE_URL` aus Schritt oben eintragen.
3. `alembic upgrade head` ausführen.
4. `mabea-backend.service.template` nach `/etc/systemd/system/mabea-backend.service` kopieren (Pfade/User anpassen), `systemctl daemon-reload && systemctl enable --now mabea-backend`.
## Eskalations-Prüfung einrichten (Karte 12, nach Backend-Deploy)
```bash
cp mabea-eskalation.service.template /etc/systemd/system/mabea-eskalation.service
cp mabea-eskalation.timer.template /etc/systemd/system/mabea-eskalation.timer
systemctl daemon-reload
systemctl enable --now mabea-eskalation.timer
```
Läuft täglich 06:00 Uhr (±5min Streuung), ruft `scripts/eskalation_pruefen.py` direkt
gegen die DB auf (kein HTTP/Admin-Token nötig). Zeitschwellen selbst liegen in der DB
(`eskalation_konfiguration`, admin-editierbar über `GET/PUT /api/v1/eskalation/konfiguration`),
nicht in dieser Timer-Konfiguration. Manueller Testlauf: `systemctl start mabea-eskalation.service`,
Ergebnis in `journalctl -u mabea-eskalation.service`.
## Dateien
- `install_server.sh` Server-Grundausstattung (PostgreSQL, nginx), idempotent
- `nginx_mabea.conf.template` Reverse-Proxy-Vorlage, von `install_server.sh` verwendet
- `mabea-backend.service.template` systemd-Unit-Vorlage für das Backend (noch nicht aktiviert, Pfade anpassen)
- `mabea-eskalation.service.template` / `mabea-eskalation.timer.template` täglicher Eskalations-Prüflauf (Karte 12)