broker-data-directory-exists: file.directory: - name: /opt/paperless/broker - makedirs: True paperless-data-directory-exists: file.directory: - name: /opt/paperless/webserver - makedirs: True broker-docker-container-running: docker_container.running: - name: broker - image: {{ salt['pillar.get']('paperless:broker:image:path', 'docker.io/library/redis') }}:{{ salt['pillar.get']('paperless:broker:image:version', '7') }} - container_name: broker - restart: unless-stopped - binds: /opt/paperless/broker:/data - networks: - bridge gotenberg-docker-container-running: docker_container.runnig: - name: gotenberg - image: {{ salt['pillar.get']('paperless:gotenberg:image:path', 'docker.io/gotenberg/gotenberg') }}:{{ salt['pillar.get']('paperless:gotenberg:image:version', '8.9.1') }} - container_name: gotenberg - restart: unless-stopped # The gotenberg chromium route is used to convert .eml files. We do not # want to allow external content like tracking pixels or even javascript. - command: - "gotenberg" - "--chromium-disable-javascript=true" - "--chromium-allow-list=file:///tmp/.*" - networks: - bridge tika-docker-container-running: docker_container.runnig: - name: tika - image: {{ salt['pillar.get']('paperless:tika:image:path', 'docker.io/apache/tika') }}:{{ salt['pillar.get']('paperless:tika:image:version', '2.9.2.1') }} - container_name: tika - restart: unless-stopped - networks: - bridge paperless-docker-container-running: docker_container.running: # The Docker setup does not use the configuration file. # So we have to set everything through environment variables. # see https://github.com/paperless-ngx/paperless-ngx/blob/main/docker/compose/docker-compose.env - name: paperless - image: {{ salt['pillar.get']('paperless:webserver:image:path', 'github.com/paperless-ngx/paperless-ngx') }}:{{ salt['pillar.get']('paperless:webserver:image:version', 'v2.11.6') }} - container_name: paperless - environment: - USER_UID=1000 - USER_GID=1000 - PAPERLESS_REDIS={{ salt['pillar.get']('paperless:webserver:environment:redis', 'redis://broker:6379') }} - PAPERLESS_TIKA_ENABLED={{ salt['pillar.get']('paperless:webserver:environment:tika_enabled', '1') }} - PAPERLESS_TIKA_ENDPOINT={{ salt['pillar.get']('paperless:webserver:environment:tika_endpoint', 'http://tika:9998') }} - PAPERLESS_TIKA_GOTENBERG_ENDPOINT={{ salt['pillar.get']('paperless:webserver:environment:tika_gotenberg_endpoint', 'http://gotenberg:3000') }} # - PAPERLESS_ENABLE_HTTP_REMOTE_USER={{ salt['pillar.get']('', 'false') }} # - PAPERLESS_ENABLE_HTTP_REMOTE_USER_API={{ salt['pillar.get']('', 'false') }} # - PAPERLESS_SECRET_KEY={{ salt['pillar.get']('paperless:webserver:environment:secret_key', 'change-me') }} # - PAPERLESS_URL={{ salt['pillar.get']('paperless:webserver:environment:url', 'https://paperless.flipdot.org') }} - restart: always - networks: - bridge - extra_hosts: - ldap.flipdot.space:192.168.3.233 - binds: - /opt/paperless/webserver/data:/usr/src/paperless/data - /opt/paperless/webserver/media:/usr/src/paperless/media - /opt/paperless/webserver/export:/usr/src/paperless/export - /opt/paperless/webserver/consume:/usr/src/paperless/consume - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - port_bindings: - "{{ salt['pillar.get']('paperless:webserver:port', "127.0.0.1:8000") }}:8000"