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.
Prerequisites
Section titled “Prerequisites”- 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.
Pull the image
Section titled “Pull the image”podman pull fortifiedid.jfrog.io/docker/fortifiedid/eid-server:<version>Replace <version> with the target release tag.
Prepare the host directory layout
Section titled “Prepare the host directory layout”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.
Run the container
Section titled “Run the container”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.
Environment variables
Section titled “Environment variables”| Variable | Default | Description |
|---|---|---|
SERVER_LOG_LEVEL |
INFO |
Log verbosity: TRACE, DEBUG, INFO, WARN, or ERROR. |
Verify installation
Section titled “Verify installation”On first startup, EID Server runs Liquibase to initialize the database schema. Check the logs to confirm the server started successfully:
podman logs -f eid-serverA successful startup ends with a line indicating all modules have been deployed. Then confirm the health endpoint responds:
curl http://localhost:8080/public/api/healthA 200 response confirms the service is running and ready.