mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-04-04 10:29:34 +00:00
Change docker-compose to use env vars
This commit is contained in:
parent
b3ca7954bb
commit
a1bf3957ba
@ -58,8 +58,8 @@ away:
|
||||
|
||||
``` shell
|
||||
git clone https://github.com/eikek/docspell
|
||||
cd docspell/docker
|
||||
DOCSPELL_HEADER_VALUE="my-secret-123" docker-compose up
|
||||
cd docspell/docker/docker-compose
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Then go to `http://localhost:7880`, sign up and login. Use the same
|
||||
|
@ -1,2 +0,0 @@
|
||||
TZ=Europe/Berlin
|
||||
DOCSPELL_HEADER_VALUE=none
|
@ -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:
|
||||
|
@ -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
|
||||
}
|
||||
}
|
@ -25,8 +25,7 @@ getStarted version =
|
||||
3. Run `docker-compose up`:
|
||||
|
||||
```bash
|
||||
$ export DOCSPELL_HEADER_VALUE="my-secret-123"
|
||||
$ docker-compose up
|
||||
$ docker-compose up -d
|
||||
```
|
||||
|
||||
The environment variable defines a secret that is shared between
|
||||
|
@ -172,18 +172,25 @@ $ cd docspell/docker/docker-compose
|
||||
Then run `docker-compose`:
|
||||
|
||||
```bash
|
||||
$ export DOCSPELL_HEADER_VALUE="my-secret-123"
|
||||
$ docker-compose up
|
||||
$ docker-compose up -d
|
||||
```
|
||||
|
||||
The environment variable defines a secret that is shared between the
|
||||
container watching a directory and the server. It is the header
|
||||
defined for the [integration
|
||||
endpoint](@/docs/api/upload.md#integration-endpoint) containers. You
|
||||
can use whatever you like. Please see the help to the [dsc
|
||||
tool](@/docs/tools/cli.md) docs for additional info.
|
||||
If you look at `docker-compose.yml`, there are several environment
|
||||
variables defined. A few that you should change, i.e. all "secrets":
|
||||
|
||||
Goto `http://localhost:7880`, signup and login. When signing up, you
|
||||
- `DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET`
|
||||
- `DOCSPELL_SERVER_AUTH_SERVER__SECRET`
|
||||
- `DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE`
|
||||
|
||||
Then, the value for
|
||||
`DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE`
|
||||
must be duplicated in the consumedir command (both values must match).
|
||||
It is the header defined for the [integration
|
||||
endpoint](@/docs/api/upload.md#integration-endpoint). You can use
|
||||
whatever you like, best something random. Please see the help to the
|
||||
[dsc tool](@/docs/tools/cli.md) docs for additional info.
|
||||
|
||||
Goto `http://localhost:7880`, signup and login. When signing up,
|
||||
choose the same name for collective and user. Then login with this
|
||||
name and the password.
|
||||
|
||||
@ -191,9 +198,19 @@ name and the password.
|
||||
chose for the collective at registration) and place files in there for
|
||||
importing them.
|
||||
|
||||
The directory contains a file `docspell.conf` that you can
|
||||
[modify](@/docs/configure/_index.md) as needed.
|
||||
Docspell can be configured via environment variables or a config file.
|
||||
Please see the [configuration](@/docs/configure/_index.md) for more
|
||||
details and possible values/variables. You can create a config file
|
||||
and mount it into the container. Then specify the config file as the
|
||||
an argument to the command, i.e. add a
|
||||
|
||||
``` yml
|
||||
command:
|
||||
- /path/to/config.conf
|
||||
```
|
||||
|
||||
to the service definition (or add it to an existing `command:`
|
||||
section).
|
||||
|
||||
### Override this setup
|
||||
|
||||
|
@ -429,8 +429,7 @@ defining an environment variable which gets picked up by the
|
||||
containers defined in `docker-compose.yml`:
|
||||
|
||||
``` bash
|
||||
export DOCSPELL_HEADER_VALUE="my-secret"
|
||||
docker-compose up
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user