Skip to content

Fortified IDDocs

Container

Step-by-step guide to deploying FortifiedID EID Server as a container.

FortifiedID EID Server is distributed as a container image and runs with Podman or Docker. This page covers pulling the image, preparing the host directory layout, and starting the container.

  • Podman or Docker installed on the host.
  • Access credentials to the FortifiedID image registry (fortifiedid.jfrog.io).
  • A MariaDB instance reachable from the host, with an empty database created for EID Server.
Terminal window
podman pull fortifiedid.jfrog.io/docker/fortifiedid/eid-server:<version>

Replace <version> with the target release tag.

EID Server reads configuration and key material from bind-mounted host directories. Create the following layout before starting the container:

<base-dir>/
config/
http_listeners/
modules/
db/
liquibase/
saml/
out/ ← must be writable by the container
cache/ ← must be writable by the container
organizations/
csca/
files/
logs/
<keys-dir>/
organizations/ ← must be writable by the container

<base-dir> and <keys-dir> are paths you choose on the host. A common layout is:

Host path Purpose
/opt/fortified/servers/eid-server Base directory for server configuration and runtime files
/opt/fortified/keys Cryptographic keys and keystores shared across FortifiedID services

Populate config/ with your config.json, HTTP listener definitions, and module configurations before starting. See Eid for the full configuration reference.

Terminal window
podman run --name eid-server \
-e SERVER_LOG_LEVEL=INFO \
-p 8080:8080 \
-p 9090:9090 \
-v <base-dir>/db/liquibase:/opt/fortified/servers/eid-server/db/liquibase:Z \
-v <base-dir>/config:/opt/fortified/servers/eid-server/config:Z \
-v <keys-dir>:/opt/fortified/keys:Z \
-v <base-dir>/saml:/opt/fortified/servers/eid-server/saml:Z \
-v <base-dir>/organizations:/opt/fortified/servers/eid-server/organizations:Z \
-v <base-dir>/csca:/opt/fortified/servers/eid-server/csca:Z \
fortifiedid.jfrog.io/docker/fortifiedid/eid-server:<version> \
-c Node config/config.json
Argument Description
-c Route all output to stdout.
Node Start the Node module (required).
config/config.json Configuration file path, relative to the server home inside the container.

Port 9090 is only required when the admin API is enabled in the configuration. Omit -p 9090:9090 if the admin block is not present in the Eid module config.

Variable Default Description
SERVER_LOG_LEVEL INFO Log verbosity: TRACE, DEBUG, INFO, WARN, or ERROR.

On first startup, EID Server runs Liquibase to initialize the database schema. Check the logs to confirm the server started successfully:

Terminal window
podman logs -f eid-server

A successful startup ends with a line indicating all modules have been deployed. Then confirm the health endpoint responds:

Terminal window
curl http://localhost:8080/public/api/health

A 200 response confirms the service is running and ready.