Skip to main content

docker-clean-installation-1.7.0

0 · Prerequisites

RequirementMandatory?Check / Notes
Sudo accesssudo -v (or sudo su) should succeed.
Docker 24 +docker --version
Elasticsearch 7.14 – Cluster reachable; service user with R/W on indices.
TCP port openHanami exposes 80 by default .
Nexus credentialsNeeded to download the ZIP artefact.
External triplestoreoptionalConfigure if you don’t use the embedded store.
External IAM / OAuth 2optionalRequired only when env.hanami.security.iam: true.

Tip — You can leave optional blocks in the config; Hanami ignores them until the matching feature flag is enabled.


1 · Download release 1.7.0

curl -u <user>:<password> -O \
https://nexus-direct.cogni.zone/repository/ep-hanami/zone/cogni/ep/hanami/ep-hanami/1.7.0/ep-hanami-1.7.0.zip

2 · Extract the artefact

unzip ep-hanami-1.7.0.zip

Expected files:

ep-hanami-1.7.0.tar   # Docker image
ext/ # Default configuration

3 · (If present) stop & remove an old container

sudo docker stop ep-hanami-container
sudo docker rm ep-hanami-container

4 · Load the Docker image

sudo docker load -i ep-hanami-1.7.0.tar

5 · Stage the ext directory

sudo mkdir -p /opt/hanami-ext
sudo cp -r ./ext/* /opt/hanami-ext/

Resulting layout:

/opt/hanami-ext/config
├─ customer-env.yml.example ← template
├─ customer.yml ← keep as-is
├─ customer-iam.yml ← keep as-is
└─ customer-workflow.yml ← keep as-is

6 · Create one customer-env.yml

  1. Copy the template:

    cp /opt/hanami-ext/config/customer-env.yml.example \
    /opt/hanami-ext/config/customer-env.yml
  2. Open it and replace placeholders.

    env:
    hanami:
    elasticsearch:
    url: "https://es.example.com:9200"
    username: "hanami_svc"
    password: "********"
    triplestore:
    url: "http://triplestore:7200/repositories/ep-data"
    username: "sparql_user"
    password: "********"
    catalogue:
    url: "http://catalogue.internal:80"
    security:
    iam: false # ← set **true** for OAuth / OIDC
    issuer-uri: "" # fill only when iam = true
    client-id: "" # idem
    client-secret: "" # idem

7 · Prepare persistence folders

sudo mkdir -p /opt/hanami-backups
sudo mkdir -p /opt/hanami-logs

8 · Run the container

sudo docker run -d \
--name ep-hanami-container \
--network host \
--restart unless-stopped \
-v /opt/hanami-ext:/opt/hanami/ext \
-v /opt/hanami-backups:/opt/hanami/backups \
-v /opt/hanami-logs:/opt/hanami/logs \
ep-hanami:1.7.0 \
--spring.profiles.active=workflow,env

Parameter quick reference

Flag / ArgumentPurpose
--network hostPublishes port 80 directly on the host.
-v /opt/hanami-ext:/opt/hanami/extMounts your configuration.
--spring.profiles.active=workflow,envLoads customer-workflow.yml and injects customer-env.yml.

9 · Watch the logs

sudo docker logs -f ep-hanami-container

Look for “Started HanamiApplication” and successful indexing messages.