services:
    broker:
        container_name: "paperless_ngx-broker-${CONTEXT}"
        networks:
            paperless_ngx-default:
        extends:
            file: "${COMPOSE_COMMON_SETTINGS}"
            service: 'common-settings'
        volumes:
            - "/opt/docker-data/paperless_ngx-${CONTEXT}/broker/data:/data"
    db:
        image: "docker.io/library/postgres:${PGSQL_VERSION}"
        container_name: "paperless_ngx-db-${CONTEXT}"
        networks:
            paperless_ngx-default:
        extends:
            file: "${COMPOSE_COMMON_SETTINGS}"
            service: 'common-settings'
        volumes:
            - "/opt/docker-data/paperless_ngx-${CONTEXT}/db/data:/var/lib/postgresql/data"
    gotenberg:
        container_name: "paperless_ngx-gotenberg-${CONTEXT}"
        networks:
            paperless_ngx-default:
        extends:
            file: "${COMPOSE_COMMON_SETTINGS}"
            service: 'common-settings'
    tika:
        container_name: "paperless_ngx-tika-${CONTEXT}"
        networks:
            paperless_ngx-default:
        extends:
            file: "${COMPOSE_COMMON_SETTINGS}"
            service: 'common-settings'
    webserver:
        image: "ghcr.io/paperless-ngx/paperless-ngx:${PAPERLESS_NGX_VERSION}"
        container_name: "paperless_ngx-webserver-${CONTEXT}"
        networks:
            paperless_ngx-default:
        ports: !override
            - "${WEBSERVER_VIP}:${WEBSERVER_PORT}:8000"
        extends:
            file: "${COMPOSE_COMMON_SETTINGS}"
            service: 'common-settings'
        volumes:
            - "/opt/docker-data/paperless_ngx-${CONTEXT}/webserver/data:/usr/src/paperless/data"
            - "/opt/docker-data/paperless_ngx-${CONTEXT}/webserver/media:/usr/src/paperless/media"
            - "/opt/docker-data/paperless_ngx-${CONTEXT}/webserver/export:/usr/src/paperless/export"
            - "/opt/docker-data/paperless_ngx-${CONTEXT}/webserver/consume:/usr/src/paperless/consume"
        environment:
            PAPERLESS_OCR_LANGUAGE: "${PAPERLESS_OCR_LANGUAGE}"
            PAPERLESS_OCR_LANGUAGES: "${PAPERLESS_OCR_LANGUAGES}"
            PAPERLESS_SECRET_KEY: "${PAPERLESS_SECRET_KEY}"
            PAPERLESS_TIME_ZONE: "${PAPERLESS_TIME_ZONE}"
            PAPERLESS_URL: "${PAPERLESS_URL}"
            PAPERLESS_EMAIL_HOST: "${PAPERLESS_EMAIL_HOST}"
            PAPERLESS_EMAIL_HOST_PASSWORD: "${PAPERLESS_EMAIL_HOST_PASSWORD}"
            PAPERLESS_EMAIL_HOST_USER: "${PAPERLESS_EMAIL_HOST_USER}"
            PAPERLESS_EMAIL_PORT: "${PAPERLESS_EMAIL_PORT}"
            PAPERLESS_EMAIL_USE_SSL: "${PAPERLESS_EMAIL_USE_SSL}"
            PAPERLESS_OCR_CLEAN: "${PAPERLESS_OCR_CLEAN}"
volumes: !reset []
networks: !override
    paperless_ngx-default:
        name: paperless_ngx-${CONTEXT}
        driver: bridge
        driver_opts:
            com.docker.network.enable_ipv6: "false"
        ipam:
            driver: default
            config:
                - subnet: ${SUBNET}