-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
87 lines (79 loc) · 7.72 KB
/
docker-compose.yml
File metadata and controls
87 lines (79 loc) · 7.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
version: '2.1'
networks:
kommonitor:
driver: bridge
services:
# database container; must use PostGIS database
# database is not required to run in docker - will be configured in Data Management component
kommonitor-db:
image: mdillon/postgis
container_name: kommonitor-db
#restart: unless-stopped
ports:
- 5432:5432
environment:
- POSTGRES_USER=kommonitor # database user (will be created on startup if not exists) - same settings in data management service
- POSTGRES_PASSWORD=kommonitor # database password (will be created on startup if not exists) - same settings in data management service
- POSTGRES_DB=kommonitor_data # database name (will be created on startup if not exists) - same settings in data management service
volumes:
- postgres_data:/var/lib/postgresql/data # persist database data on disk (crucial for compose down calls to let data survive)
networks:
- kommonitor
# Data Management component encapsulating the database access and management as REST service
kommonitor-data-management:
image: kommonitor/data-management
container_name: kommonitor-data-management
#restart: unless-stopped
depends_on:
- kommonitor-db # only if database runs as docker container as well
ports:
- "8085:8085"
networks:
- kommonitor
links:
- kommonitor-db
environment:
- SERVER_PORT=8085 # Server port; default is 8085
- DATABASE_HOST=kommonitor-db # host of database (i.e. docker name when db runs in docker in same network; else URL to database server)
- DATABASE_USER=kommonitor # database user (username with acess to database, should be owner of the database)
- DATABASE_PASSWORD=kommonitor # database user password
- DATABASE_NAME=kommonitor_data # database name
- DATABASE_PORT=5432 # database port
- logging.level.de.hsbo.kommonitor=ERROR # adjust logging level [e.g. "INFO", "WARN", "ERROR"] - ERROR logs only errors
- ENABLE_OGC_PUBLISHMENT=false # enable/disable Geoserver-based publishment of spatial data as Web service - currently Geoserver-connection should be disabled
- DB_SCHEMA_SPATIALUNITS=public # only relevant with GeoServer connection
- DB_SCHEMA_GEORESOURCES=public # only relevant with GeoServer connection
- DB_SCHEMA_INDICATORS=public # only relevant with GeoServer connection
- GEOSERVER_HOST=https://kommonitor.fbg-hsbo.de/geoserver # Geoserver host URL - only relevant with GeoServer connection
- GEOSERVER_PORT=80 # Geoserver port - only relevant with GeoServer connection
- GEOSERVER_USER=admin # Geoserver username - only relevant with GeoServer connection
- GEOSERVER_PASSWORD=password # Geoserver user password - only relevant with GeoServer connection
- GEOSERVER_TARGET_WORKSPACE=kommonitor # Geoserver workspace name (will be created if not exists) - only relevant with GeoServer connection
- GEOSERVER_DATASTORE_SPATIALUNITS=kommonitor_spatialunits # Geoserver datastore name for spatial units (will be created if not exists) - only relevant with GeoServer connection
- GEOSERVER_DATASTORE_GEORESOURCES=kommonitor_georesources # Geoserver datastore name for georesources (will be created if not exists) - only relevant with GeoServer connection
- GEOSERVER_DATASTORE_INDICATORS=kommonitor_indicators # Geoserver datastore name for indicators (will be created if not exists) - only relevant with GeoServer connection
- GEOSERVER_DEFAULT_EPSG=EPSG:4326 # Geoserver default EPSG code (EPSG:4326 as KomMonitor uses this internally as well) - only relevant with GeoServer connection
- encryption.enabled=false # enable/disable encrypted data transfer from Data Management service (requested data will be encrypted)
- encryption.symmetric.aes.password=password # shared secret for data encryption - must be set equally within all supporting components
- encryption.symmetric.aes.iv.length_byte=16 # length of random initialization vector for encryption algorithm - must be set equally within all supporting components
- KOMMONITOR_DATAMANAGEMENTAPI_SWAGGERUI_BASEPATH= #depending on DNS Routing and Reverse Proxy setup a base path can be set here to access swagger-ui interface (e.g. set '/data-management' if https://kommonitor-url.de/data-management works as entry point for localhost:8085)
- keycloak.enabled=true # enable/disable role-based data access using Keycloak (true requires working Keycloak Setup and enforces that all other components must be configured to enable Keycloak as well)
- kommonitor.swagger-ui.security.client-id=kommonitor-data-management # client/resource id of data management component in Keycloak realm
- kommonitor.swagger-ui.security.secret=secret # WARNING: DO NOT SET IN PRODUCTION!!! Keycloak secret of this component within Credentials tab of respective Keycloak client; secret for swagger-ui to authorize swagger-ui requests in a Keycloak-active scenario (mostly this should not be set, as users with access to swagger-ui (e.g. 'http://localhost:8085/swagger-ui.html') could then authorize without own user account and perform CRUD requests)
- keycloak.realm=kommonitor # Keycloak realm name
- keycloak.auth-server-url=https://keycloak.fbg-hsbo.de/auth # Keycloak URL ending with '/auth/'
- keycloak.resource=kommonitor-data-management # client/resource id of data management component in Keycloak realm
- keycloak.bearer-only=true # sets authentication workflow to use/accept Bearer token sent within Authorization header
- keycloak.autodetect-bearer-only=false # normally do not change this value
- keycloak.sslquired=external # Keycloak SSL setting; ["external", "none"]; default "external"
- keycloak.public-client=false # Keycloak setting that component is not public (its REST endpoints are partially Keycloak-protected and require Authentication)
- keycloak.cors=true # enable CORS
- keycloak.cors-allowed-methods=* # enable all HTTP operations for CORS
- keycloak.credentials.secret=secret # Keycloak secret of this component within Credentials tab of respective Keycloak client; must be set here
- SERVER_MAXHTTPHEADERSIZE=48000
- server.max-http-header-size=48000
- kommonitor.roles.admin=kommonitor-creator # name of the Keycloak role that is used as "administrator" role within KomMonitor granting rights to inspect all data and perform all actions. This name of this role is configurable, but must be set to the equal value within management and importer component as well as within Keycloak
- kommonitor.recreateAllViewsOnStartup=false # if true, will run a recreation of all database indicator views on startup (default false)
# ... other KomMonitor components omitted here
volumes:
postgres_data: