No results
1
Deployment
mrrmlab Wiki edited this page 2026-05-02 18:03:36 +02:00
Deployment
Produktions-Stack
Internet
└── Traefik (Reverse Proxy, TLS via Let's Encrypt)
├── app.mrrm.de → web (nginx:alpine)
├── api.mrrm.de → api (node:alpine)
├── fdroid.mrrm.de → fdroid-repo (nginx:alpine)
└── (OCR intern) → ocr (python:slim)
mrrmlabapp-internal (Docker Network)
├── api
├── web
├── ocr
├── mrrmlabapp-db (PostgreSQL 17)
└── fdroid-repo
Docker-Compose (Produktion)
Datei: deploy/docker-compose.yml
Deployed auf: /opt/server-stack/mrrmlabapp/docker-compose.yml
# Manuell deployen
cd /opt/server-stack/mrrmlabapp
docker compose --env-file ../.env pull
docker compose --env-file ../.env up -d
Umgebungsvariablen (Produktion)
Datei: /opt/server-stack/.env
MRRMLABAPP_DB_PASSWORD=<starkes-passwort>
MRRMLABAPP_KC_AUDIENCE=mrrmlab-api
API bekommt zusätzlich via docker-compose:
DATABASE_URL=postgresql://mrrmlab:${MRRMLABAPP_DB_PASSWORD}@mrrmlabapp-db:5432/mrrmlab
KC_ISSUER=https://auth.mrrm.de/realms/mmlab
KC_JWKS_URI=https://auth.mrrm.de/realms/mmlab/protocol/openid-connect/certs
KC_AUDIENCE=${MRRMLABAPP_KC_AUDIENCE}
OCR_SERVICE_URL=http://ocr:8000
CORS_ORIGINS=https://app.mrrm.de
Auto-Deployment via CI
Nach jedem Push auf main läuft automatisch:
publish-api/web/ocr→ neue Docker-Images werden gebautdeploy-Pipeline:- Lädt aktuelle
docker-compose.ymlauf den Server - Führt
docker compose pull && up -daus
- Lädt aktuelle
Dev-Umgebung
Separate publish-web-dev + deploy-dev Pipelines für dev.app.mrrm.de und dev.api.mrrm.de.
Logs
# Auf Produktions-Server
docker compose logs -f api
docker compose logs -f web
docker compose logs -f ocr
# Einzelner Service
docker logs mrrmlabapp-api-1 --tail=100 -f
Datenbank-Backup
# Manuell
docker exec mrrmlabapp-mrrmlabapp-db-1 \
pg_dump -U mrrmlab mrrmlab > backup-$(date +%Y%m%d).sql
# Wiederherstellen
cat backup.sql | docker exec -i mrrmlabapp-mrrmlabapp-db-1 \
psql -U mrrmlab mrrmlab