
Current Version: 2026.1.1 (Sep 2026)
Current Docker-Version of TTP-FHIR-Gateway: 2026.1.1, Details from ReleaseNotes
The Consent Management solution gICS (generic Informed Consent Administration Service) supports the management of digital informed consent documents. It facilitates checking for various policies and modules of a consent in real time.
This gICS image is completely identical to the image mosaicgreifswald/wildfly-gc:40,
except that it already contains the deployments and JBoss-CLIs from our gICS.
All functionalities of the gICS are provided for external use via SOAP-interfaces.
The JavaDoc specs for the Consent Services
are available online (see package org.emau.icmvc.ganimed.ttp.cm2).
Use SOAP-UI to create sample requests based on the WSDL files.
The WSDL URL is http://<YOUR IPADDRESS>:8080/gics/gicsService?wsdl
The WSDL URL is http://<YOUR IPADDRESS>:8080/gics/gicsServiceWithNotification?wsdl
The WSDL URL is http://<YOUR IPADDRESS>:8080/gics/gicsManagementService?wsdl
More details from https://www.ths-greifswald.de/gics/fhir
Access to relevant application and database servers of the Trusted Third Party tools should only be possible for authorised personnel and via authorised end devices. We therefore recommend additionally implementing the following IT security measures:
| Category | Variable | Available values or scheme | Default | Purpose |
|---|---|---|---|---|
| WF-Admin | WF_NO_ADMIN | true | false | false | set true if you don't need wildfly-admin |
| WF-Admin | WF_ADMIN_USER | <STRING> | admin | define username for wildfly-admin |
| WF-Admin | WF_ADMIN_PASS | <STRING> | -random- | to set password for wildfly-admin |
| Quality | WF_HEALTHCHECK_URLS | <NEWLINE-SEPARATED-URLs> | - | contain a list of urls to check the health of this container |
| Optimizing | WF_MAX_POST_SIZE | <BYTES> | 10485760 | the maximum size of a post that will be accepted, in bytes |
| Optimizing | WF_MAX_PARAMETERS | <NUMBER> | 100000 | the maximum number of parameters that will be parsed |
| Optimizing | WF_MAX_CHILD_ELEMENTS | <NUMBER> | 50000 | the maximum number of children that will be allow in xml-post |
| Optimizing | WF_BLOCKING_TIMEOUT | <SECONDS> | 300 | this can be used to change the time until processes are cancelled |
| Optimizing | WF_TRANSACTION_TIMEOUT | <SECONDS> | 300 | this can be used to change the time after which a transaction is automatically terminated |
| Optimizing | WF_DATASOURCES_QUERY_TIMEOUT <-- new | <SECONDS> | 30 | timeout for datasource queries |
| Optimizing | WF_DEPLOYMENT_TIMEOUT <-- new | <SECONDS> | 600 | timeout for the deployment scanner to allow a deployment attempt before being canceled |
| Optimizing | WF_ENABLE_HTTP2 | true | false | false | HTTP2 support |
| Optimizing | WF_ENABLE_PROXY_ADDRESS_FORWARDING <-- new | true | false | false | use this option when the wildfly is running behind a reverse proxy or load balancer (e.g., NGINX, Apache, etc.) |
| Security | WF_SERVER_KEYSTORE_PASSWORD | <STRING> | - | this password is only used in combination with /entrypoint-wildfly-server-keystore to access the keystore |
| Security | WF_SERVER_KEYSTORE_ALIAS | <STRING> | - | if there is more than one certificate in the keystore, this alias must be specified |
| Logging | WF_SYSTEM_LOG_TO <-- improved | CONSOLE;FILE;SYSLOG | CONSOLE | multiple values semicolon-separated possible |
| Logging | WF_SYSTEM_LOG_LEVEL <-- improved | SEVERE|FATAL|ERROR|WARN|INFO|DEBUG|TRACE|FINE | INFO | this can be used to set the log level of the console |
| Logging | WF_SYSTEM_LOG_PATTERN | <STRING> | %d %-5.5p %-4.4L %-40.40c{2.} | %m%n | |
| Logging | WF_SYSTEM_LOG_COLORS <-- new | <LEVEL>:<COLOR>[,<LEVEL>:<COLOR>[,...]] | - | this map allows a comma delimited list of colors to be used for different levels with a pattern formatter |
| Logging | WF_SYSTEM_SYSLOG_HOST <-- new | <HOST> | syslog | |
| Logging | WF_SYSTEM_SYSLOG_PORT <-- new | <PORT> | 514 | |
| Logging | WF_SYSTEM_SYSLOG_FORMAT <-- new | RFC3164|RFC5424 | RFC3164 | |
| Security | WF_SERVER_KEYSTORE_PASSWORD | <STRING> | - | this password is only used in combination with /entrypoint-wildfly-server-keystore to access the keystore |
| Security | WF_SERVER_KEYSTORE_ALIAS | <STRING> | - | if there is more than one certificate in the keystore, this alias must be specified |
| Processing | MOS_WAIT_FOR_PORTS | <HOST>:<PORT>[:<TIMEOUT>[:<SLEEP>]],... | - | comma delimited list of endpoints that should wait before starting wildfly. defaults: timeout=300,sleep=0 |
| Processing | WF_WAIT_FOR_PORTS | <HOST>:<PORT>[:<TIMEOUT>[:<SLEEP>]],... | - | just like MOS_WAIT_FOR_PORTS, but waits after JBoss-CLI |
| Debugging | WF_DEBUG | true | false | false | set true to enable debug-mode in wildfly |
| Debugging | DEBUG_PORT | <IP>:<PORT> | *:8787 | for debugging you can change the ip:port |
| Optimizing | TZ | <STRING> | Europe/Berlin | |
| Optimizing | JAVA_OPTS | <STRING> | - | you need more memory? then give yourself more memory or define any system-variables |
| Logging | TTP_GICS_LOG_TO | CONSOLE;FILE | CONSOLE | |
| Logging | TTP_GICS_LOG_LEVEL | TRACE | DEBUG | INFO | WARN | ERROR | FATAL | INFO | |
| Logging | TTP_GICS_LOG_PATTERN | <STRING> | %d %-5p [%c] (%t) %s%E%n | |
| Database | TTP_GICS_DB_DBMS <-- new | mysql | mariadb | mysql | |
| Database | TTP_GICS_DB_HOST | <STRING> | mysql | |
| Database | TTP_GICS_DB_PORT | 0-65535 | 3306 | |
| Database | TTP_GICS_DB_NAME | <STRING> | gics | |
| Database | TTP_GICS_DB_USER | <STRING> | gics_user | |
| Database | TTP_GICS_DB_PASS | <STRING> | gics_password | |
| Database | TTP_GICS_DB_URI <-- new | <DBMS://HOST:PORT/DB_NAME?PARAMS> | (builded from above values) | if TTP_EPIX_DB_URI is set, the other variables (TTP_GICS_DB_*) are mostly ignored |
| Security | TTP_GICS_WEB_AUTH_MODE | gras | keycloak | - | |
| Security | TTP_GICS_SOAP_KEYCLOAK_ENABLE | true | false | - | |
| Security | TTP_GICS_SOAP_ROLE_USER_NAME | <STRING> | role.gics.user | |
| Security | TTP_GICS_SOAP_ROLE_USER_SERVICES | <STRING> | /gics/gicsService,/gics/gicsServiceWithNotification | |
| Security | TTP_GICS_SOAP_ROLE_ADMIN_NAME | <STRING> | role.gics.admin | |
| Security | TTP_GICS_SOAP_ROLE_ADMIN_SERVICES | <STRING> | /gics/DomainService | |
| Optimizing | TTP_GICS_WEB_CONTEXT | <STRING> | gics-web | |
| Optimizing | TTP_GICS_REST_CONTEXT <-- new | <STRING> | gics-rest | |
| Optimizing | TTP_GICS_SOAP_CONTEXT | <STRING> | gics | |
| Optimizing | TTP_DISABLE_FHIR_GATEWAY | true | false | false | set true if you don't need fhir-gateway |
| Optimizing | TTP_DISABLE_NOTI_CLIENT | true | false | false | set true if you don't need notification-client |
| Optimizing | TTP_DISABLE_NOTI_SERVICE | true | false | false | set true if you don't need notification-service |
| Security | TTP_GICS_AUTH_DOMAIN_ROLES <-- new | DISABLED|FORCED|IMPLIED | (from TTP_AUTH_DOMAIN_ROLES=IMPLIED) |
| Path | ref. ENV-Variable | Type | Purpose |
|---|---|---|---|
| /entrypoint-logs | ENTRY_LOGS | folder | all further layers can store their own log files here in subdirectories. |
| /entrypoint-help-and-usage | ENTRY_USAGE | folder | Here you will find README-files for each docker-image-layer, including examples. |
| /entrypoint-java-cacerts | ENTRY_JAVA_CACERTS | file | the entrypoint can be used to store its own cacerts, e.g. containing public-keys of server certificates for specific web requests or CA. |
| /entrypoint-java-trusts | ENTRY_JAVA_TRUSTS | folder | at startup, all certificate files from here are imported into the Java truststore (cacerts) and existing aliases are replaced if necessary. |
| /entrypoint-wildfly-cli | ENTRY_WILDFLY_CLI | folder | to execute JBoss-cli-files before start WildFly (read-only access) |
| /entrypoint-wildfly-deployments | ENTRY_WILDFLY_DEPLOYS | folder | to import your deployments, also ear- and/or war-files (read-only access, optional write access) |
| /entrypoint-wildfly-addins | ENTRY_WILDFLY_ADDINS | folder | to import additional files for deployments (read-only access) |
| /entrypoint-wildfly-logs | ENTRY_WILDFLY_LOGS | folder | to export all available log-files (read/write access) |
| /entrypoint-wildfly-server-keystore | ENTRY_WILDFLY_SERVER_KEYSTORE | file | to use your own keystore for server certificate (read-only access) <-- experimental |
"versions" shows all installed tools and components, with their versions.
docker run --rm mosaicgreifswald/gics versions
last updated : 2026-07-20 16:56:45
Architecture : x86_64
Distribution : Debian GNU/Linux 13.6 (trixie)
zulu-jre : 25.0.3
WildFly : 40.0.1.Final
MySQL-Connector : 9.7.0
MariaDB-Connector : 3.5.9
PostgreSQL-Connector : 42.7.13
EclipseLink : 4.0.9
Chrome-Headless-Shell : 151.0.7922.34
Chrome-Driver : 151.0.7922.34
gICS : 2026.1.0
FHIR-Gateway : 2026.1.0
Notification-Client : 2026.1.0
Notification-Service : 2026.1.0
If data is stored on the host-system (via volume), it is created by default with the internal mosaic-user (UID:GID = 1111:1111). You can change the write-user by using the Docker parameter --user/-u.
# change write-user (UID:GID) for writable volumes like logs/
> docker run --rm -d \
-u 1006:1001 \
-e WF_SYSTEM_LOG_TO=FILE \
-v /path/to/your/logs:/entrypoint-wildfly-logs \
mosaicgreifswald/gics
> ls -l /path/to/your/logs
insgesamt 8
-rw-r--r-- 1 1006 1001 0 13. Jun 10:25 gics.log
You need a prepared MySQL database to start the gICS successfully.
# with external db
> docker run --rm -it \
-e TTP_DB_HOST=host_or_ip \
-e TTP_DB_PORT=3306 \
-e TTP_DB_USER=gics \
-e TTP_DB_PASS=top-secret \
-p 8080:8080 \
mosaicgreifswald/gics
If you don't have an gICS database, you can create one yourself. Everything you need to create your own database is already included in this image:
# explore all additional files
> docker run --rm -it mosaicgreifswald/gics examples
# explore and copy interesting files to your local host
> docker run --rm -it -v "/your/local/path/:/tmp/" -u "$(id -u):$(id -g)" mosaicgreifswald/gics examples --target-dir /tmp
# or copy directly all files to your host
> docker run --rm -v "/your/local/path/:/tmp/" -u "$(id -u):$(id -g)" mosaicgreifswald/gics examples --target-dir /tmp --copy-all
You will receive the following directory-tree and can start playing immediately:
|____layer-readme/
| |____README-gics.md
|____examples/
|____compose-gics/
|____addins/
|____demo/
| |____demo_gics.sql
|____docs/
| |____Docker-Update.md
| |____gRAS-Einrichtung.md
| |____TTP-Tools-Keycloak-Einrichtung.md
| |____TTP-Tools-Keycloak-Realm.json
|____envs/
| |____mysql.env
| |____ttp_commons.env
| |____ttp_fhir.env
| |____ttp_gics.env
| |____ttp_gras.env
| |____ttp_noti.env
|____logs/
|____sqls/
| |____create_database_gics.sql
| |____create_database_gras.sql
| |____create_database_noti.sql
| |____init_database_gras_for_gics.sql
|____update_sqls/
| |____update_database_gics.sql
|____docker-compose.yml
You can then start up an empty system directly:
# go to compose-dir and start compose
> cd examples/compose-gics
> docker compose up
over docker-compose with dependent on mysql-db (example)
# docker-compose.yml
services:
mysql:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: top-secret
volumes:
- /path/to/your/init-sql-files:/docker-entrypoint-initdb.d
wildfly:
image: mosaicgreifswald/gics
ports:
- 8080:8080
- 9990:9990
depends_on:
- mysql
environment:
WF_ADMIN_PASS: top-secret
WF_HEALTHCHECK_URLS: http://localhost:8080
# copy all update-scripts to your host
> docker run --rm -v "/your/local/path/:/tmp/" -u "$(id -u):$(id -g)" mosaicgreifswald/gics examples \
--source-dir /entrypoint-help-and-usage/examples/compose-gics/update_sqls/ \
--target-dir /tmp \
--copy-all
| Date | Tags | Changes |
|---|---|---|
| 2026-09-08 | 2026.1.1, 2026, latest | Debian 13.6 "trixie" openJRE 25.0.4.1 WildFly 40.0.1.Final MySQL-Connector 9.7.0 MariaDB-Connector 3.5.9 PostgreSQL-Connector 42.7.13 EclipseLink 4.0.9 Chrome-Browser 152.0.7977.82 gICS 2026.1.1 FHIR-Gateway 2026.1.1 Notification-Service 2026.1.1 |
| 2026-07-20 | 2026.1.0 | Debian 13.6 "trixie" openJRE 25.0.3 WildFly 40.0.1.Final MySQL-Connector 9.7.0 MariaDB-Connector 3.5.9 PostgreSQL-Connector 42.7.13 EclipseLink 4.0.9 Chrome-Browser 151.0.7922.34 gICS 2026.1.0 FHIR-Gateway 2026.1.0 Notification-Service 2026.1.0 |
| 2025-12-16 | 2025.2.0, 2025 | Debian 13.2 "trixie" openJRE 21.0.9 WildFly 38.0.0.Final MySQL-Connector 9.5.0 MariaDB-Connector 3.5.6 PostgreSQL-Connector 42.7.8 EclipseLink 4.0.8 Chrome-Browser 135.0.7049.114 gICS 2025.2.0 FHIR-Gateway 2025.2.0 Notification-Service 2025.2.0 |
| 2025-10-29 | 2025.1.2 | Debian 13.1 "trixie" openJRE 21.0.9 WildFly 38.0.0.Final MySQL-Connector 9.5.0 EclipseLink 4.0.8 Chrome-Browser 135.0.7049.114 gICS 2025.1.2 FHIR-Gateway 2025.1.1 Notification-Service 2025.1.1 |
| 2025-07-09 | 2025.1.0 | Debian 12.11 "bookworm" openJRE 21.0.7 WildFly 36.0.1.Final MySQL-Connector 9.3.0 EclipseLink 4.0.7 Chrome-Browser 135.0.7049.114 gICS 2025.1.0 FHIR-Gateway 2025.1.0 Notification-Service 2025.1.0 |
| 2025-01-24 | 2024.3.1, 2024 | Debian 12.9 "bookworm" openJRE 21.0.6 WildFly 35.0.0.Final MySQL-Connector 9.2.0 EclipseLink 4.0.5 gICS 2024.3.1 FHIR-Gateway 2024.3.0 Notification-Service 2024.2.0 |
| 2025-01-15 | 2024.3.0 | Debian 12.9 "bookworm" openJRE 21.0.5 WildFly 34.0.1.Final MySQL-Connector 9.1.0 EclipseLink 4.0.5 gICS 2024.3.0 FHIR-Gateway 2024.3.0 (Notification-Service 2024.2.0) |
| 2024-10-10 | 2024.2.1 | Debian 12.7 "bookworm" openJRE 21.0.4 WildFly 32.0.1.Final EclipseLink 4.0.4 gICS 2024.2.1 FHIR-Gateway 2024.2.2 Notification-Service 2024.1.1 |
The gICS was developed by the University Medicine Greifswald and published in 2014 as part of the MOSAIC-Project (funded by the DFG HO 1937/2-1). Selected functionalities of gICS were developed as part of the following research projects:
Concept and implementation: L. Geidel
Web-Client: A. Blumentritt, M. Bialke, F.M.Moser
Docker: R. Schuldt
TTP-FHIR Gateway für gICS: M. Bialke, P. Penndorf, L. Geidel, S. Lang, F.M. Moser
License: AGPLv3, https://www.gnu.org/licenses/agpl-3.0.en.html
Copyright: 2014 - 2026 University Medicine Greifswald
Contact: https://www.ths-greifswald.de/kontakt/
German, English
Content type
Image
Digest
sha256:b734a0a03…
Size
1.2 GB
Last updated
8 days ago
docker pull mosaicgreifswald/gics