# Deployment ## Voraussetzungen - Synology NAS mit laufendem shared PostgreSQL Stack (`/volume2/docker/shared/`) - act_runner registriert und online - Siehe Infra-Repo für Setup-Details --- ## Datenbank einrichten (einmalig) ```bash sudo docker exec -it shared-postgres-1 psql -U postgres ``` ```sql CREATE DATABASE pamietnik; CREATE USER pamietnik WITH PASSWORD ''; GRANT ALL PRIVILEGES ON DATABASE pamietnik TO pamietnik; GRANT ALL ON SCHEMA public TO pamietnik; \q ``` --- ## Gitea Secrets & Variables **Repository → Einstellungen → Actions → Secrets:** | Secret | Wert | |--------|------| | `DB_PASSWORD` | Passwort des `pamietnik` DB-Users | **Repository → Einstellungen → Actions → Variables:** | Variable | Wert | |----------|------| | `DEPLOY_DIR` | `/volume2/docker/pamietnik` | | `DB_USER` | `pamietnik` | | `DB_NAME` | `pamietnik` | | `APP_PORT` | `9050` | --- ## Deploy Push auf `main` triggert automatisch den Workflow (`.gitea/workflows/deploy.yml`): 1. Code nach `/volume2/docker/pamietnik/` klonen/pullen 2. `.env` mit DB-Credentials schreiben 3. `docker compose up --build -d` 4. Health check auf `/healthz` App erreichbar unter: `http://192.168.1.4:9050` --- ## Ersten User anlegen ```bash sudo docker exec -it pamietnik-api-1 /createuser ``` --- ## Logs & Wartung ```bash # Logs sudo docker compose -f /volume2/docker/pamietnik/docker-compose.yml logs -f # Neustart sudo docker compose -f /volume2/docker/pamietnik/docker-compose.yml restart # Backup sudo docker exec shared-postgres-1 pg_dump -U postgres pamietnik \ > /volume2/docker/shared/backup_$(date +%Y%m%d)_pamietnik.sql ```