name: paperless services: broker: image: redis:7 container_name: ${CONTAINER_NAME}-redis restart: ${RESTART_POLICY} networks: - traefik deploy: resources: limits: memory: 512M db: image: postgres:15 container_name: ${CONTAINER_NAME}-db restart: ${RESTART_POLICY} networks: - traefik environment: POSTGRES_DB: ${DB} POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - db_data:/var/lib/postgresql/data webserver: image: paperlessngx/paperless-ngx:latest container_name: ${CONTAINER_NAME} restart: ${RESTART_POLICY} networks: - traefik environment: - PAPERLESS_REDIS=redis://broker:6379 - PAPERLESS_DBHOST=db - PAPERLESS_DBNAME=${DB} - PAPERLESS_DBUSER=${DB_USER} - PAPERLESS_DBPASS=${DB_PASSWORD} - PAPERLESS_URL=https://${SUBDOMAIN}.${DOMAIN} - PAPERLESS_TIME_ZONE=${TZ} - PAPERLESS_OCR_LANGUAGE=deu - PAPERLESS_SECRET_KEY=${SECRET_KEY} volumes: - ${DATA_PATH}/data:/usr/src/paperless/data - ${DATA_PATH}/media:/usr/src/paperless/media - ${DATA_PATH}/consume:/usr/src/paperless/consume - ${DATA_PATH}/export:/usr/src/paperless/export labels: - "traefik.enable=true" - "traefik.http.routers.${ROUTER_NAME}.entrypoints=websecure" - "traefik.http.routers.${ROUTER_NAME}.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)" - "traefik.http.routers.${ROUTER_NAME}.tls=true" - "traefik.http.routers.${ROUTER_NAME}.tls.certresolver=${CERTIFICATE_RESOLVER}" - "traefik.http.services.${ROUTER_NAME}.loadbalancer.server.port=8000" - "traefik.docker.network=${TRAEFIK_NETWORK}" depends_on: - broker - db networks: traefik: name: traefik external: true volumes: db_data: