From 31b7e26f6c4d7111f4f4957996efb9f7a5d06cb9 Mon Sep 17 00:00:00 2001 From: hygienic-books <> Date: Tue, 16 May 2023 22:17:21 +0200 Subject: [PATCH 1/9] refactor(compose): 4 spaces indentation --- .../compose/docker-compose.postgres-tika.yml | 114 +++++++++--------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index a451b00d..7423be72 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -32,67 +32,67 @@ version: "3.4" services: - broker: - image: docker.io/library/redis:7 - restart: unless-stopped - volumes: - - redisdata:/data + broker: + image: docker.io/library/redis:7 + restart: unless-stopped + volumes: + - redisdata:/data - db: - image: docker.io/library/postgres:13 - restart: unless-stopped - volumes: - - pgdata:/var/lib/postgresql/data - environment: - POSTGRES_DB: paperless - POSTGRES_USER: paperless - POSTGRES_PASSWORD: paperless + db: + image: docker.io/library/postgres:13 + restart: unless-stopped + volumes: + - pgdata:/var/lib/postgresql/data + environment: + POSTGRES_DB: paperless + POSTGRES_USER: paperless + POSTGRES_PASSWORD: paperless - webserver: - image: ghcr.io/paperless-ngx/paperless-ngx:latest - restart: unless-stopped - depends_on: - - db - - broker - - gotenberg - - tika - ports: - - "8000:8000" - healthcheck: - test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"] - interval: 30s - timeout: 10s - retries: 5 - volumes: - - data:/usr/src/paperless/data - - media:/usr/src/paperless/media - - ./export:/usr/src/paperless/export - - ./consume:/usr/src/paperless/consume - env_file: docker-compose.env - environment: - PAPERLESS_REDIS: redis://broker:6379 - PAPERLESS_DBHOST: db - PAPERLESS_TIKA_ENABLED: 1 - PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 - PAPERLESS_TIKA_ENDPOINT: http://tika:9998 + webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:latest + restart: unless-stopped + depends_on: + - db + - broker + - gotenberg + - tika + ports: + - "8000:8000" + healthcheck: + test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"] + interval: 30s + timeout: 10s + retries: 5 + volumes: + - data:/usr/src/paperless/data + - media:/usr/src/paperless/media + - ./export:/usr/src/paperless/export + - ./consume:/usr/src/paperless/consume + env_file: docker-compose.env + environment: + PAPERLESS_REDIS: redis://broker:6379 + PAPERLESS_DBHOST: db + PAPERLESS_TIKA_ENABLED: 1 + PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 + PAPERLESS_TIKA_ENDPOINT: http://tika:9998 - gotenberg: - image: docker.io/gotenberg/gotenberg:7.8 - restart: unless-stopped + gotenberg: + image: docker.io/gotenberg/gotenberg:7.8 + 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/.*" + # 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/.*" - tika: - image: ghcr.io/paperless-ngx/tika:latest - restart: unless-stopped + tika: + image: ghcr.io/paperless-ngx/tika:latest + restart: unless-stopped volumes: - data: - media: - pgdata: - redisdata: + data: + media: + pgdata: + redisdata: -- 2.39.1 From 0ebc4e023573bbd7108c3addf2ddb110af93cf55 Mon Sep 17 00:00:00 2001 From: hygienic-books <> Date: Tue, 16 May 2023 22:22:06 +0200 Subject: [PATCH 2/9] refactor(compose): Harmonize restart and logging settigs --- docker/compose/common-settings.yml | 11 ++++++++++ .../compose/docker-compose.postgres-tika.yml | 20 ++++++++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 docker/compose/common-settings.yml diff --git a/docker/compose/common-settings.yml b/docker/compose/common-settings.yml new file mode 100644 index 00000000..9fd26d75 --- /dev/null +++ b/docker/compose/common-settings.yml @@ -0,0 +1,11 @@ +services: + common-settings: + environment: + TZ: "${TIMEZONE:-Etc/UTC}" + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "10" + compress: "true" + restart: "${RESTARTPOLICY:-unless-stopped}" diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index 7423be72..d19c22d7 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -34,13 +34,17 @@ version: "3.4" services: broker: image: docker.io/library/redis:7 - restart: unless-stopped + extends: + file: common-settings.yml + service: common-settings volumes: - redisdata:/data db: image: docker.io/library/postgres:13 - restart: unless-stopped + extends: + file: common-settings.yml + service: common-settings volumes: - pgdata:/var/lib/postgresql/data environment: @@ -50,7 +54,9 @@ services: webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest - restart: unless-stopped + extends: + file: common-settings.yml + service: common-settings depends_on: - db - broker @@ -78,7 +84,9 @@ services: gotenberg: image: docker.io/gotenberg/gotenberg:7.8 - restart: unless-stopped + extends: + file: common-settings.yml + service: common-settings # The gotenberg chromium route is used to convert .eml files. We do not # want to allow external content like tracking pixels or even javascript. @@ -89,7 +97,9 @@ services: tika: image: ghcr.io/paperless-ngx/tika:latest - restart: unless-stopped + extends: + file: common-settings.yml + service: common-settings volumes: data: -- 2.39.1 From 2b9c005a3c1d54900d6646c9c36c7f7e98d3b2a7 Mon Sep 17 00:00:00 2001 From: hygienic-books <> Date: Tue, 16 May 2023 22:28:02 +0200 Subject: [PATCH 3/9] refactor(compose): Replace static exposed port with environment variable --- docker/compose/docker-compose.postgres-tika.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index d19c22d7..554d9735 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -63,7 +63,7 @@ services: - gotenberg - tika ports: - - "8000:8000" + - "${WEBSERVER_PORT}":8000 healthcheck: test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"] interval: 30s -- 2.39.1 From 01a55586aa24f7ab9945f5f1d563970ab0c72290 Mon Sep 17 00:00:00 2001 From: hygienic-books <> Date: Tue, 16 May 2023 22:30:47 +0200 Subject: [PATCH 4/9] refactor(compose): Harmonize container names --- docker/compose/docker-compose.postgres-tika.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index 554d9735..10316fc2 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -34,6 +34,7 @@ version: "3.4" services: broker: image: docker.io/library/redis:7 + container_name: "paperless_ngx-broker-${CONTEXT}" extends: file: common-settings.yml service: common-settings @@ -42,6 +43,7 @@ services: db: image: docker.io/library/postgres:13 + container_name: "paperless_ngx-db-${CONTEXT}" extends: file: common-settings.yml service: common-settings @@ -54,6 +56,7 @@ services: webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest + container_name: "paperless_ngx-webserver-${CONTEXT}" extends: file: common-settings.yml service: common-settings @@ -84,6 +87,7 @@ services: gotenberg: image: docker.io/gotenberg/gotenberg:7.8 + container_name: "paperless_ngx-gotenberg-${CONTEXT}" extends: file: common-settings.yml service: common-settings @@ -97,6 +101,7 @@ services: tika: image: ghcr.io/paperless-ngx/tika:latest + container_name: "paperless_ngx-tika-${CONTEXT}" extends: file: common-settings.yml service: common-settings -- 2.39.1 From cddc6e0ddd423ab050362289bb0753867e4f4e10 Mon Sep 17 00:00:00 2001 From: hygienic-books <> Date: Tue, 16 May 2023 22:36:29 +0200 Subject: [PATCH 5/9] refactor(compose): Replace named volumes with bind mounts --- .../compose/docker-compose.postgres-tika.yml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index 10316fc2..eacb76c8 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -39,7 +39,7 @@ services: file: common-settings.yml service: common-settings volumes: - - redisdata:/data + - /opt/docker-data/paperless_ngx-${CONTEXT}/broker/data:/data db: image: docker.io/library/postgres:13 @@ -48,7 +48,7 @@ services: file: common-settings.yml service: common-settings volumes: - - pgdata:/var/lib/postgresql/data + - /opt/docker-data/paperless_ngx-${CONTEXT}/db/data:/var/lib/postgresql/data environment: POSTGRES_DB: paperless POSTGRES_USER: paperless @@ -73,10 +73,10 @@ services: timeout: 10s retries: 5 volumes: - - data:/usr/src/paperless/data - - media:/usr/src/paperless/media - - ./export:/usr/src/paperless/export - - ./consume:/usr/src/paperless/consume + - /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 env_file: docker-compose.env environment: PAPERLESS_REDIS: redis://broker:6379 @@ -105,9 +105,3 @@ services: extends: file: common-settings.yml service: common-settings - -volumes: - data: - media: - pgdata: - redisdata: -- 2.39.1 From 68deaf24dd08c39ed2a90759044a9b315c04d22f Mon Sep 17 00:00:00 2001 From: hygienic-books <> Date: Tue, 16 May 2023 22:37:44 +0200 Subject: [PATCH 6/9] refactor(compose): Introduce dedicated network --- .../compose/docker-compose.postgres-tika.yml | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index eacb76c8..05885149 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -35,6 +35,8 @@ services: broker: image: docker.io/library/redis:7 container_name: "paperless_ngx-broker-${CONTEXT}" + networks: + paperless_ngx-default: extends: file: common-settings.yml service: common-settings @@ -44,6 +46,8 @@ services: db: image: docker.io/library/postgres:13 container_name: "paperless_ngx-db-${CONTEXT}" + networks: + paperless_ngx-default: extends: file: common-settings.yml service: common-settings @@ -57,6 +61,8 @@ services: webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest container_name: "paperless_ngx-webserver-${CONTEXT}" + networks: + paperless_ngx-default: extends: file: common-settings.yml service: common-settings @@ -88,6 +94,8 @@ services: gotenberg: image: docker.io/gotenberg/gotenberg:7.8 container_name: "paperless_ngx-gotenberg-${CONTEXT}" + networks: + paperless_ngx-default: extends: file: common-settings.yml service: common-settings @@ -102,6 +110,19 @@ services: tika: image: ghcr.io/paperless-ngx/tika:latest container_name: "paperless_ngx-tika-${CONTEXT}" + networks: + paperless_ngx-default: extends: file: common-settings.yml service: common-settings + +networks: + paperless_ngx-default: + name: paperless_ngx-${CONTEXT} + driver: bridge + driver_opts: + com.docker.network.enable_ipv6: "false" + ipam: + driver: default + config: + - subnet: ${SUBNET} -- 2.39.1 From edfc732eb7c23c51dfa9a370e1a850e7cbef45b2 Mon Sep 17 00:00:00 2001 From: hygienic-books <> Date: Tue, 16 May 2023 22:39:23 +0200 Subject: [PATCH 7/9] refactor(compose): No double quotes for port variable needed --- docker/compose/docker-compose.postgres-tika.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index 05885149..f1dd4913 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -72,7 +72,7 @@ services: - gotenberg - tika ports: - - "${WEBSERVER_PORT}":8000 + - ${WEBSERVER_PORT}:8000 healthcheck: test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"] interval: 30s -- 2.39.1 From 20da814bbfcc2f5745a82b3fb2fcc9edd4015482 Mon Sep 17 00:00:00 2001 From: hygienic-books <> Date: Tue, 16 May 2023 22:53:20 +0200 Subject: [PATCH 8/9] refactor(compose): Replace hard-linked env file with variables --- docker/compose/docker-compose.postgres-tika.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index f1dd4913..1a5abbb8 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -83,13 +83,17 @@ services: - /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 - env_file: docker-compose.env environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBHOST: db PAPERLESS_TIKA_ENABLED: 1 PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 PAPERLESS_TIKA_ENDPOINT: http://tika:9998 + 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} gotenberg: image: docker.io/gotenberg/gotenberg:7.8 -- 2.39.1 From 64beae08ffe8f9a65208e2567919fd75564b95c6 Mon Sep 17 00:00:00 2001 From: hygienic-books <> Date: Tue, 16 May 2023 23:15:26 +0200 Subject: [PATCH 9/9] feat(compose): Bind to a virtual IP address --- docker/compose/docker-compose.postgres-tika.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index 1a5abbb8..3cb20287 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -72,7 +72,7 @@ services: - gotenberg - tika ports: - - ${WEBSERVER_PORT}:8000 + - ${WEBSERVER_VIP}:${WEBSERVER_PORT}:8000 healthcheck: test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"] interval: 30s -- 2.39.1