88bdf6f34b
- Split monolithic app.py into server/api/ routers - Add Pydantic schemas for input validation - Add /agent/* API with separate AGENT_TOKEN auth - Replace static schema.sql with versioned migrations (datenerhaltend) - Add tools/backup_db.py for SQLite backups - Add Dockerfile HEALTHCHECK and compose.yml AGENT_TOKEN env - Add pytest tests for user and agent API - Update README with API docs and deployment safety notes - Bump version to 1.2.0
36 lines
1.2 KiB
YAML
36 lines
1.2 KiB
YAML
services:
|
|
app:
|
|
build: .
|
|
restart: unless-stopped
|
|
environment:
|
|
- APP_PIN=${APP_PIN}
|
|
- JWT_SECRET=${JWT_SECRET}
|
|
- JWT_EXPIRE_DAYS=${JWT_EXPIRE_DAYS:-90}
|
|
- AGENT_TOKEN=${AGENT_TOKEN:-}
|
|
- VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY}
|
|
- VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY}
|
|
- VAPID_CLAIMS_EMAIL=${VAPID_CLAIMS_EMAIL:-mailto:admin@schwenk.online}
|
|
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
|
|
- OPENROUTER_MODEL=${OPENROUTER_MODEL:-google/gemini-2.0-flash-001}
|
|
- DB_PATH=/data/medis.sqlite
|
|
- MEDS_PATH=/app/meds.yaml
|
|
- MESSAGES_PATH=/app/messages.yaml
|
|
- TZ=Europe/Berlin
|
|
volumes:
|
|
- ./data:/data
|
|
- ./meds.yaml:/app/meds.yaml:ro
|
|
- ./messages.yaml:/app/messages.yaml:ro
|
|
networks:
|
|
- traefik
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=traefik
|
|
- traefik.http.routers.takeyourmeds.rule=Host(`medis.schwenk.online`)
|
|
- traefik.http.routers.takeyourmeds.entrypoints=websecure
|
|
- traefik.http.routers.takeyourmeds.tls.certresolver=myresolver
|
|
- traefik.http.services.takeyourmeds.loadbalancer.server.port=8000
|
|
|
|
networks:
|
|
traefik:
|
|
external: true
|