Skip to content

Production deployment

This procedure matches the current docker-compose.yml. Confirm the image versions before each deployment.

  • Size CPU, memory, and disk from expected FHIR volume and PostgreSQL growth; the repository does not define a universal minimum.
  • Permit inbound HTTPS 443 only from approved clients. Restrict 9000, 8080, and Kong administrative port 8444 to 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:latest and healthtag/fhir-transformer to tested immutable versions before production rollout.
  1. Record the source revision and every container image digest.

  2. Create the environment files and TLS files with restrictive permissions.

  3. Start databases and wait for readiness:

    Terminal window
    docker compose up -d hapi-fhir-postgres kong-postgres
    docker compose logs --tail=100 hapi-fhir-postgres kong-postgres
  4. Start the remaining services and inspect their status:

    Terminal window
    docker compose up -d
    docker compose ps
  5. Initialize Kong using the container-scoped commands in Quick start.

  6. 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.