Skip to main content

docker-clean-installation-1.7.x

0 · Prerequisites

RequirementMandatory?Check / Notes
Sudo accesssudo -v (or sudo su) should succeed.
Docker24+docker --version
Elasticsearch7.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/OAuth2optionalRequired only when env.hanami.security.iam: true.

1 · Download release1.7.1

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

2 · Extract the artefact

unzip ep-hanami-1.7.1.zip

Expected files:

ep-hanami-1.7.1.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.1.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 IAM / OAuth / OIDC
    issuer-uri: "" # fill only when iam = true
    client-id: "" # idem
    client-secret: "" # idem

7 · Update Front-End settings

Please use this instruction to update Front-End configuration per environment: UI Assets Overrides


8 · (Optional) Admin onboarding

Hanami ships with a single built‑in administrator (admin). Before you start the container in production you can optionally create more or rename at least one admin account.

  1. Open /opt/hanami-ext/boot/boot-auth-data.trig.
  2. Read the commented header – it explains how to: • rename the default admin (change every admin occurrence in subject URIs and the hanami:username / vcard:hasUID literals), • or append additional admin blocks with hanami:isAdmin true.
  3. Save the file. Changes are injected at first container start‑up.

9 · Prepare persistence folders

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

10 · Run the container

Without external IAM / OAuth2 (default)

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.1 \
--spring.profiles.active=workflow,env

With external IAM / OAuth2

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.1 \
--spring.profiles.active=workflow,env,iam

Parameter quick reference

Flag / ArgumentPurpose
--network hostPublishes port80 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.
iam profileAdds external IAM / OAuth2 support (only when required).

11 · Watch the logs

sudo docker logs -f ep-hanami-container

Look for “Started HanamiApplication” and successful indexing messages.