Files
pamietnik/doc/deployment.md
Christoph K. 45875502f8
All checks were successful
Deploy to NAS / deploy (push) Successful in 34s
Move infra/ content to doc/deployment.md; delete infra/ directory
docker-compose.yml lives in infra repo; deployment docs belong in doc/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 18:50:42 +02:00

80 lines
1.6 KiB
Markdown

# 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 '<passwort>';
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
```