ansible-role-paperless-ngx/templates/docker-compose.yml.j2

114 lines
2.9 KiB
Django/Jinja

version: "3.3"
services:
# Redis
#
broker:
image: docker.io/library/redis:{{ paperless_image_version_redis }}
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
start_period: 20s
interval: 30s
retries: 5
timeout: 3s
networks:
- paperless
volumes:
- {{ paperless_volume_redis }}:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
{% if paperless_db_host == 'postgres' %}
# Postgres
#
postgres-init:
image: docker.io/library/postgres:{{ paperless_image_version_db }}
volumes:
- "{{ paperless_volume_db }}:/data"
entrypoint:
- sh
- -c
- |
chown -R 70:70 /data
postgres:
depends_on:
postgres-init:
condition: service_completed_successfully
image: docker.io/library/postgres:{{ paperless_image_version_db }}
env_file:
- "{{ paperless_setup_path | expanduser }}/env.db.conf"
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
start_period: 20s
interval: 30s
retries: 5
timeout: 5s
networks:
- paperless
{% if paperless_db_port %}
ports:
- {{ paperless_db_port }}:5432
{% endif %}
volumes:
- {{ paperless_volume_db }}:/var/lib/postgresql/data
{% else %}
#
# External database at "{{ paperless_db_schema }}:{{ paperless_db_host }}: {{ paperless_db_port }}"
#
{% endif %}
# Gotenberg
#
gotenberg:
image: "gotenberg/gotenberg:{{ paperless_image_version_gotenberg }}"
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
restart: unless-stopped
networks:
- paperless
# Apache TIKA
#
tika:
image: "ghcr.io/paperless-ngx/tika:{{ paperless_image_version_tika }}"
restart: unless-stopped
networks:
- paperless
# The paperless image
#
paperless:
image: "ghcr.io/paperless-ngx/paperless-ngx:{{ paperless_image_version_paperless }}"
env_file:
- "{{ paperless_setup_path | expanduser }}/env.paperless.conf"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:{{ paperless_port }}"]
interval: 30s
timeout: 10s
retries: 5
depends_on:
- broker
- gotenberg
- tika
{% if paperless_db_host == 'postgres' %}
- postgres-init
- postgres
{% endif %}
ports:
- "{{ paperless_port }}:8000"
volumes:
- "{{ paperless_volume_media }}:/usr/src/paperless/media"
- "{{ paperless_volume_metadata }}:/usr/src/paperless/data"
- "{{ paperless_volume_consume }}:/usr/src/paperless/consume"
- "{{ paperless_volume_export }}:/usr/src/paperless/export"
networks:
- paperless
networks:
paperless: {}