Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Deployment Examples

Each folder is a standalone deployment example with its own Dockerfile that installs fhirHydrant from npm. Pass your SMART Backend Services credentials as environment variables at runtime — never bake secrets into the image.

Examples

Azure App Service via az webapp create with a custom container. Good when you want deployment slots, built-in auth, or VNet integration. Uses port 8080 (Azure default). Overrides search-controls.json with trimmed descriptions.

Azure Container Apps via az containerapp up --source .. Azure builds the image, provides HTTPS and a public URL, and scales to zero when idle. Uses port 8080 (Azure default). Overrides instructions/manifest.json with a custom fragment list, replacing the default composed instructions.

Docker Compose with a .env file. Copy .env.example to .env, fill in your values, then docker compose up --build. Good for local development or single-server deployments. Replaces the resources/ folder with a minimal catalog — its Dockerfile wipes the packaged config/resources/ before copying, since the additive COPY alone would leave the default resource files in place.

Kubernetes Deployment + Service manifests. Build and push the image to your registry, create a Secret with your SMART credentials, then kubectl apply. Uses liveness and readiness probes against /health. Overrides core-tools.json with simplified tool descriptions.

Compose + Caddy for automatic HTTPS. Caddy handles TLS certificates so the FHIR server can reach /jwks over a public HTTPS URL without extra setup. Update the Caddyfile with your domain, copy .env.example to .env, then docker compose up --build. Overrides operations.json with a trimmed catalog.

Custom Config

fhirHydrant ships with default config files for resources, operations, search controls, and instructions. Config is a partial overlay: each Dockerfile copies the example's config/ folder to /app/config, and the server prefers a ./config/<file> over the packaged default per-file. Add only the files you want to change — anything not overridden keeps the package default.

The overlay can shadow and add files but cannot remove a packaged resource, so the compose example (which ships a strictly minimal catalog) also deletes the packaged config/resources/ folder before copying its own.