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
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:
- Environment variables — use Spring Boot's relaxed binding (dots become underscores, uppercase), e.g.
SPRING_DATASOURCE_URL - 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.