You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
5.0 KiB
142 lines
5.0 KiB
version: '3.8'
|
|
networks:
|
|
pubnet:
|
|
external: false
|
|
|
|
volumes:
|
|
traefik_acme:
|
|
traefik_logs:
|
|
docs:
|
|
|
|
docspell-postgres_data:
|
|
docspell-solr_data:
|
|
|
|
services:
|
|
# The restserver and joex containers defined here are configured
|
|
# using env variables. Both must connect to the same database and
|
|
# solr instance. More information on configuring can be found here:
|
|
# https://docspell.org/docs/configure
|
|
#
|
|
# Please replace the values of the following with a custom secret
|
|
# string:
|
|
#
|
|
# - DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET
|
|
# - DOCSPELL_SERVER_AUTH_SERVER__SECRET
|
|
# - DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE
|
|
# (use the same value at the consumedir container!)
|
|
#
|
|
# After creating an account, you may want to set signup mode to
|
|
# "closed" or to "invite". When using invite, you must also set
|
|
# DOCSPELL_SERVER_BACKEND_SIGNUP_NEW__INVITE__PASSWORD to some
|
|
# secret.
|
|
|
|
restserver:
|
|
image: docspell/restserver:latest
|
|
ports:
|
|
- "7880:7880"
|
|
environment:
|
|
- TZ=Europe/Berlin
|
|
- "DOCSPELL_SERVER_INTERNAL__URL=http://docspell-restserver:7880"
|
|
- "DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET={{ vault_DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET }}"
|
|
- "DOCSPELL_SERVER_AUTH_SERVER__SECRET={{ vault_DOCSPELL_SERVER_AUTH_SERVER__SECRET }}"
|
|
- "DOCSPELL_SERVER_BACKEND_JDBC_PASSWORD={{ vault_DOCSPELL_SERVER_BACKEND_JDBC_PASSWORD }}"
|
|
- "DOCSPELL_SERVER_BACKEND_JDBC_URL=jdbc:postgresql://db:5432/dbname"
|
|
- "DOCSPELL_SERVER_BACKEND_JDBC_USER={{ vault_DOCSPELL_SERVER_BACKEND_JDBC_USER }}"
|
|
- "DOCSPELL_SERVER_BIND_ADDRESS=0.0.0.0"
|
|
- "DOCSPELL_SERVER_FULL__TEXT__SEARCH_ENABLED=true"
|
|
- "DOCSPELL_SERVER_FULL__TEXT__SEARCH_SOLR_URL=http://docspell-solr:8983/solr/docspell"
|
|
- "DOCSPELL_SERVER_INTEGRATION__ENDPOINT_ENABLED=true"
|
|
- "DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_ENABLED=true"
|
|
- "DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE={{ vault_DOCSPELL_INTEGRATION_PASSWORD }}"
|
|
- "DOCSPELL_SERVER_BACKEND_SIGNUP_MODE=open"
|
|
- "DOCSPELL_SERVER_BACKEND_SIGNUP_NEW__INVITE__PASSWORD={{ vault_DOCSPELL_SERVER_BACKEND_INVITE_SIGNUP_PASSWORD }}"
|
|
- "DOCSPELL_SERVER_BACKEND_ADDONS_ENABLED=false"
|
|
depends_on:
|
|
- solr
|
|
- db
|
|
|
|
joex:
|
|
image: docspell/joex:latest
|
|
## For more memory add corresponding arguments, like below. Also see
|
|
## https://docspell.org/docs/configure/#jvm-options
|
|
# command:
|
|
# - -J-Xmx3G
|
|
ports:
|
|
- "7878:7878"
|
|
environment:
|
|
- TZ=Europe/Berlin
|
|
- "DOCSPELL_JOEX_APP__ID=joex1"
|
|
- "DOCSPELL_JOEX_PERIODIC__SCHEDULER_NAME=joex1"
|
|
- "DOCSPELL_JOEX_SCHEDULER_NAME=joex1"
|
|
- "DOCSPELL_JOEX_BASE__URL=http://docspell-joex:7878"
|
|
- "DOCSPELL_JOEX_BIND_ADDRESS=0.0.0.0"
|
|
- "DOCSPELL_JOEX_FULL__TEXT__SEARCH_ENABLED=true"
|
|
- "DOCSPELL_JOEX_FULL__TEXT__SEARCH_SOLR_URL=http://docspell-solr:8983/solr/docspell"
|
|
- "DOCSPELL_JOEX_JDBC_PASSWORD={{ vault_DOCSPELL_SERVER_BACKEND_JDBC_PASSWORD }}"
|
|
- "DOCSPELL_JOEX_JDBC_URL=jdbc:postgresql://db:5432/dbname"
|
|
- "DOCSPELL_JOEX_JDBC_USER={{ vault_DOCSPELL_SERVER_BACKEND_JDBC_USER }}"
|
|
- "DOCSPELL_JOEX_ADDONS_EXECUTOR__CONFIG_RUNNER=docker,trivial"
|
|
- "DOCSPELL_JOEX_CONVERT_HTML__CONVERTER=weasyprint"
|
|
ports:
|
|
- "7878:7878"
|
|
depends_on:
|
|
- solr
|
|
- db
|
|
## Uncomment when using the "docker" runner with addons
|
|
# volumes:
|
|
# - /var/run/docker.sock:/var/run/docker.sock
|
|
# - /tmp:/tmp
|
|
|
|
# The consumedir container watches a directory for files to upload
|
|
# to docspell restserver. This uses the `dsc` tool. For information
|
|
# on the available options, see `dsc --help`.
|
|
# https://github.com/docspell/dsc
|
|
#
|
|
# The value after `Docspell-Integration` must match the secret
|
|
# specified at the restserver via
|
|
# DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE.
|
|
#
|
|
# The --not-matches "**/.*" option is to exclude hidden files.
|
|
consumedir:
|
|
image: docspell/dsc:latest
|
|
command:
|
|
- dsc
|
|
- "-d"
|
|
- "http://docspell-restserver:7880"
|
|
- "watch"
|
|
- "--delete"
|
|
- "-ir"
|
|
- "--not-matches"
|
|
- "**/.*"
|
|
- "--header"
|
|
- "Docspell-Integration:{{ vault_DOCSPELL_INTEGRATION_PASSWORD }}"
|
|
- "/opt/docs"
|
|
volumes:
|
|
- "/home/josiah/apps/docspell/docs:/opt/docs"
|
|
depends_on:
|
|
- restserver
|
|
|
|
db:
|
|
image: postgres:15.2
|
|
volumes:
|
|
- docspell-postgres_data:/var/lib/postgresql/data/
|
|
environment:
|
|
- "POSTGRES_USER={{ vault_DOCSPELL_SERVER_BACKEND_JDBC_USER }}"
|
|
- "POSTGRES_PASSWORD={{ vault_DOCSPELL_SERVER_BACKEND_JDBC_PASSWORD }}"
|
|
- "POSTGRES_DB=dbname"
|
|
|
|
solr:
|
|
image: solr:9
|
|
volumes:
|
|
- docspell-solr_data:/var/solr
|
|
command:
|
|
- bash
|
|
- -c
|
|
- 'precreate-core docspell; exec solr -f -Dsolr.modules=analysis-extras'
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8983/solr/docspell/admin/ping"]
|
|
interval: 1m
|
|
timeout: 10s
|
|
retries: 2
|
|
start_period: 30s
|