Files
Paperless-Contracts/docker-compose.yml

86 lines
2.3 KiB
YAML

services:
contract-companion:
image: ${BACKEND_IMAGE:-paperless-contract-companion-api:latest}
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
environment:
- PORT=8000
- LOG_LEVEL=${LOG_LEVEL:-info}
- DATABASE_PATH=/app/data/contracts.db
- ALERT_DAYS_BEFORE=${ALERT_DAYS_BEFORE:-45}
- SCHEDULER_INTERVAL_MINUTES=${SCHEDULER_INTERVAL_MINUTES:-60}
- AUTH_USERNAME=${AUTH_USERNAME:-admin}
- AUTH_PASSWORD=${AUTH_PASSWORD:?Set AUTH_PASSWORD in Portainer stack environment}
- AUTH_JWT_SECRET=${AUTH_JWT_SECRET:?Set AUTH_JWT_SECRET in Portainer stack environment}
- AUTH_TOKEN_EXPIRES_IN_HOURS=${AUTH_TOKEN_EXPIRES_IN_HOURS:-12}
- APP_LOCALE=${APP_LOCALE:-de}
- PAPERLESS_BASE_URL
- PAPERLESS_EXTERNAL_URL
- PAPERLESS_WEBHOOK_URL
- PAPERLESS_TOKEN
- APP_EXTERNAL_URL
- NTFY_SERVER_URL
- NTFY_TOPIC
- NTFY_TOKEN
- NTFY_PRIORITY
- MAIL_SERVER
- MAIL_PORT
- MAIL_USERNAME
- MAIL_PASSWORD
- MAIL_USE_TLS
- MAIL_FROM
- MAIL_TO
- ICAL_SECRET
- AI_ENABLED
- AI_PROVIDER
- AI_BASE_URL
- AI_MODEL
- AI_API_KEY
- AI_SYSTEM_PROMPT
- AI_TIMEOUT_SECONDS
- AI_MAX_TOKENS
- PAPERLESS_WEBHOOK_SECRET
volumes:
- contracts-data:/app/data
ports:
- "${BACKEND_PORT:-8112}:8000"
labels:
- "com.centurylinklabs.watchtower.enable=${WATCHTOWER_ENABLE:-false}"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:8000/healthz >/dev/null 2>&1 || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
networks:
- contract-companion
contract-companion-ui:
image: ${FRONTEND_IMAGE:-paperless-contract-companion-ui:latest}
build:
context: .
dockerfile: frontend/Dockerfile
restart: unless-stopped
ports:
- "${FRONTEND_PORT:-8113}:80"
labels:
- "com.centurylinklabs.watchtower.enable=${WATCHTOWER_ENABLE:-false}"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1/ >/dev/null 2>&1 || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
depends_on:
- contract-companion
networks:
- contract-companion
volumes:
contracts-data:
networks:
contract-companion: