Skip to main content

First Run

Fire Arrow Server is distributed as a pre-built Docker image from the Evoleen Public ACR (Azure Container Registry):

evoleenpublicacr.azurecr.io/fire-arrow-server-azure

Images are tagged with the release version (e.g. 0.0.60) and latest.

License

Fire Arrow Server requires a valid license. Contact Evoleen to obtain one for your deployment.

The simplest way to inject a license into the Docker container is via environment variables:

docker run -p 8080:8080 \
-e FIRE_ARROW_LICENSE_SOURCE=inline \
-e FIRE_ARROW_LICENSE_CONTENT="<your-license-string>" \
-e FIRE_ARROW_LICENSE_DEPLOYMENT_ID="<your-deployment-id>" \
-e FIRE_ARROW_LICENSE_RUNTIME_ENVIRONMENT=nonprod \
evoleenpublicacr.azurecr.io/fire-arrow-server-azure:latest

Alternatively, you can configure the license in your application.yaml (see Licensing for all options).

Running the Default Image

The default image ships with an in-memory H2 database, so you can start exploring immediately without any external dependencies beyond the license:

docker run -p 8080:8080 \
-e FIRE_ARROW_LICENSE_SOURCE=inline \
-e FIRE_ARROW_LICENSE_CONTENT="<your-license-string>" \
-e FIRE_ARROW_LICENSE_DEPLOYMENT_ID="<your-deployment-id>" \
-e FIRE_ARROW_LICENSE_RUNTIME_ENVIRONMENT=nonprod \
evoleenpublicacr.azurecr.io/fire-arrow-server-azure:latest

This starts Fire Arrow Server on port 8080 with REST and GraphQL enabled. When the server is ready you'll see:

A FHIR has been lit on this server
note

The in-memory database is ephemeral — all data is lost when the container stops. For persistent storage, override the datasource configuration to point at a PostgreSQL instance (see Minimal Configuration).

Custom Configuration

The image supports two mechanisms for overriding the bundled defaults, listed from highest to lowest precedence:

  1. Environment variables — use Spring Boot's relaxed binding (dots become underscores, uppercase), e.g. SPRING_DATASOURCE_URL
  2. External config file — mount or copy a YAML file to /config/application.yaml

Mounting a Configuration File

You can mount a local configuration file into the container:

docker run -p 8080:8080 \
-v ./my-application.yaml:/config/application.yaml:ro \
evoleenpublicacr.azurecr.io/fire-arrow-server-azure:latest

Building a Derived Image

For production deployments, build a derived image that bakes in your configuration:

FROM evoleenpublicacr.azurecr.io/fire-arrow-server-azure:0.0.60

COPY application.yaml /config/application.yaml

This lets you pin a specific version and bundle environment-specific settings (authentication providers, database connection, authorization rules, etc.) directly into the image. Build args and environment variables can be used for values that differ between environments:

FROM evoleenpublicacr.azurecr.io/fire-arrow-server-azure:0.0.60

ARG MY_OIDC_URI
ENV MY_OIDC_URI=${MY_OIDC_URI}

COPY application.yaml /config/application.yaml

Explore the Server

Once the server is up, you have three interfaces available:

Swagger UI

Browse and test every FHIR REST endpoint interactively:

http://localhost:8080/fhir/swagger-ui/index.html

GraphQL

Send GraphQL queries via POST:

POST http://localhost:8080/fhir/$graphql

You can use any HTTP client, or the built-in GraphQL explorer in the admin UI (see below).

Admin Web UI

Manage and inspect your FHIR server through a browser-based administration interface:

http://localhost:8080/admin/

The admin UI provides a GraphQL explorer, resource browser, and configuration overview.

Next Steps

Now that the server is running, head to Minimal Configuration to learn how to configure authentication, authorization, and other features.