Production deployment
This procedure matches the current docker-compose.yml. Confirm the image versions before each deployment.
Before deployment
Section titled “Before deployment”- Size CPU, memory, and disk from expected FHIR volume and PostgreSQL growth; the repository does not define a universal minimum.
- Permit inbound HTTPS
443only from approved clients. Restrict9000,8080, and Kong administrative port8444to administrators or remove their host mappings. - Permit outbound HTTPS/DNS only to required image registries, the configured HealthTAG API, and Harmony RPC.
- Replace all repository defaults and generate installation-specific database passwords, API keys, and TLS keys.
- Pin
healthtag/hapi-fhir-jpaserver:latestandhealthtag/fhir-transformerto tested immutable versions before production rollout.
Deploy
Section titled “Deploy”-
Record the source revision and every container image digest.
-
Create the environment files and TLS files with restrictive permissions.
-
Start databases and wait for readiness:
Terminal window docker compose up -d hapi-fhir-postgres kong-postgresdocker compose logs --tail=100 hapi-fhir-postgres kong-postgres -
Start the remaining services and inspect their status:
Terminal window docker compose up -ddocker compose ps -
Initialize Kong using the container-scoped commands in Quick start.
-
Complete post-installation verification and capture the results in the change record.
[!IMPORTANT] Compose currently has no health checks. Its restart policies do not confirm that dependencies are ready. Check logs and endpoints instead of relying on container state alone.

