Change docker-compose to use env vars

This commit is contained in:
eikek
2021-10-25 14:06:29 +02:00
parent b3ca7954bb
commit a1bf3957ba
7 changed files with 73 additions and 124 deletions

View File

@ -1,2 +0,0 @@
TZ=Europe/Berlin
DOCSPELL_HEADER_VALUE=none

View File

@ -1,17 +1,35 @@
version: '3.8'
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
restserver:
image: docspell/restserver:latest
container_name: docspell-restserver
command:
- /opt/docspell.conf
restart: unless-stopped
ports:
- "7880:7880"
volumes:
- ./docspell.conf:/opt/docspell.conf
env_file: ./.env
environment:
- DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET=admin123
- DOCSPELL_SERVER_AUTH_SERVER__SECRET=
- DOCSPELL_SERVER_BACKEND_JDBC_PASSWORD=dbpass
- DOCSPELL_SERVER_BACKEND_JDBC_URL=jdbc:postgresql://db:5432/dbname
- DOCSPELL_SERVER_BACKEND_JDBC_USER=dbuser
- 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=integration-password123
depends_on:
- solr
@ -20,16 +38,29 @@ services:
container_name: docspell-joex
command:
- -J-Xmx3G
- /opt/docspell.conf
restart: unless-stopped
env_file: ./.env
environment:
- TZ=Europe/Berlin
- 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=dbpass
- DOCSPELL_JOEX_JDBC_URL=jdbc:postgresql://db:5432/dbname
- DOCSPELL_JOEX_JDBC_USER=dbuser
ports:
- "7878:7878"
volumes:
- ./docspell.conf:/opt/docspell.conf
depends_on:
- solr
# 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.
consumedir:
image: docspell/dsc:latest
container_name: docspell-consumedir
@ -41,10 +72,9 @@ services:
- "--delete"
- "-ir"
- "--header"
- "Docspell-Integration:$DOCSPELL_HEADER_VALUE"
- "Docspell-Integration:integration-password123"
- "/opt/docs"
restart: unless-stopped
env_file: ./.env
volumes:
- ./docs:/opt/docs
depends_on:

View File

@ -1,94 +0,0 @@
# This is the configuration file for docspell. It contains two main
# namespaces: docspell.server and docspell.joex. Each provide the
# config for the respective component.
#
# They can be moved to different files, if necessary. For this example
# though, both components are configured in this single file.
#
# Below are only some settings that differ from the default. Please
# see https://docspell.org/docs/configure/#default-config for all
# options and their documentation. This page provides more
# information about the important config options.
#
# Note: this docker-compose setup is an example to get started. It
# sets up one rest-server, one joex, a postgres database and a solr
# all on the same machine.
# Define settings that are used in multiple places:
db_url="jdbc:postgresql://db:5432/dbname"
db_user="dbuser"
db_pass="dbpass"
solr_url="http://docspell-solr:8983/solr/docspell"
# This configures the restserver
docspell.server {
base-url = "http://localhost:7880"
bind {
address = "0.0.0.0"
}
integration-endpoint {
enabled = true
http-header {
enabled = true
header-value = ${?DOCSPELL_HEADER_VALUE}
}
}
# This is a special endpoint that allows some basic administration.
#
# This is used for some endpoints, for example:
# - re-create complete fulltext index:
# curl -XPOST -H'Docspell-Admin-Secret: xyz' http://localhost:7880/api/v1/admin/fts/reIndexAll
admin-endpoint {
# The secret. If empty, the endpoint is disabled.
secret = ""
}
# Configuration of the full-text search engine.
full-text-search {
enabled = true
solr = {
url = ${solr_url}
}
}
backend {
jdbc {
url = ${db_url}
user = ${db_user}
password = ${db_pass}
}
}
}
# This configures joex
#
# Note to joex: It is currently setup for one instance. Should you
# want to scale joex instance up (maybe to help processing a batch of
# files), there are two options:
#
# - look at https://github.com/eikek/docspell/pull/552 to elastically
# start and stop joex instances via docker-compose
# - set pool-size to some higher number; this requires to restart joex
#
docspell.joex {
base-url = "http://docspell-joex:7878"
bind {
address = "0.0.0.0"
}
jdbc {
url = ${db_url}
user = ${db_user}
password = ${db_pass}
}
full-text-search {
enabled = true
solr = {
url = ${solr_url}
}
}
scheduler {
pool-size = 1
}
}