Helios FHIR Server Installation Guide
Introduction
In this document, we provide step-by-step instructions for users to rapidly get up and running with the Helios FHIR Server. These instructions are ideal for developers, system administrators, and users who wish to try out the Helios FHIR Server quickly.
Provided below are installation instructions for:
- Docker - running Helios FHIR Server in a Docker container
- Native - running Helios FHIR Server on native hardware such as a developer's laptop or a dedicated server.
- AWS - running Helios FHIR Server in Amazon Web Services.
The Helios FHIR Server runs on Apache Cassandra, and a Quickstart Guide is also provided below for both Docker and Native Cassandra installations. Apache Cassandra's documentation web site can be found here.
Prerequisites
Docker Installations
Ensure that you have set your memory setting to at least 24 GB in Settings -> Resources -> Memory. The default value is NOT sufficient for running Helios FHIR Server
- Cassandra running in a Docker container - Cassandra Quickstart Guide
Native Installations
- Java 11 - either Oracle Java Standard Edition 11 or OpenJDK 11
- Cassandra installed locally - Cassandra Quickstart Guide
AWS Installations
- You must have an AWS Account
- You must also have Terraform installed.
Installing Helios FHIR Server
Docker Install Instructions
Docker Compose Instructions
Create a file named docker-compose.yml
file with the contents below, then run the following command:
docker compose up
version: '3.8'
services:
cassandra:
container_name: cassandra
image: cassandra:4.1.3
ports:
- "9042:9042"
networks:
- hfs-network
restart: unless-stopped
helios-fhir-server:
container_name: helios-fhir-server
image: gcr.io/helios-fhir-server/enterprise-edition:latest
ports:
- "8181:8181"
environment:
CASSANDRA_PROPERTIES_CONTACTPOINTS: "cassandra"
networks:
- hfs-network
depends_on:
- cassandra
restart: unless-stopped
networks:
hfs-network:
name: hfs-network
driver: bridge
Docker Command Instructions
Alternatively, if you wish to use individual Docker commands and not use a Docker compose file, follow these instructions below. These instructions assume you have completed the Cassandra Docker Install steps.
Startup Helios FHIR Server in a container named helios-fhir-server
, connecting to a Cassandra instance named cassandra
, on the hfs-network
and exposing port 8181 which we will use later to access the administrative user interface with a browser.
docker run -d -p 8181:8181 -e CASSANDRA_PROPERTIES_CONTACTPOINTS=cassandra --name helios-fhir-server --net hfs-network gcr.io/helios-fhir-server/enterprise-edition:latest
During initial startup, the logs will pause at the below messages. Karaf is performing initial installation tasks which may take several minutes. This startup delay only happens on the first startup, and is normal.
INFO [features-3-thread-1] Stopping bundles: INFO [features-3-thread-1] org.ops4j.pax.logging.pax-logging-log4j2/2.1.3
Next, use the /opt/apache-karaf/bin/client
command in the Docker Terminal window, or use the following command to connect to your running Helios FHIR Server instance Karaf console.
docker exec -it helios-fhir-server client
Next, check the status using the Helios FHIR Server Karaf Shell.
Native Installation Instructions
Set $JAVA_HOME
to point to your Java 11 installation (macOS)
export JAVA_HOME=`/usr/libexec/java_home -v 11`
Download the current Helios FHIR Server distribution
Enterprise Edition Download Link Site
Provider Directory Edition Download Link Site
Extract the Helios FHIR Server distribution
tar xzvf helios-fhir-server-distributable-{version}-EnterpriseEdition.tar.gz
Start Helios FHIR Server
cd helios-fhir-server-distribution-{version}
bin/karaf
This starts the Helios FHIR Server and presents you with an interactive shell.
AWS Installation Instructions
A Reference Architecture and Terraform-based installation instructions have been created to help AWS installations get up and running quickly. The Reference Architecture consists of:
- A Virtual Private Cloud to isolate all services for the Helios FHIR Server
- A 3 node Cassandra cluster running in across two availability zones
- The Helios FHIR Server configured to run in an EKS Cluster, and configured for autoscaling
Please follow the step-by-step instructions here to setup Helios FHIR Server in your AWS account.
Using the Helios FHIR Server Karaf Shell
At the Karaf prompt, you can try log:tail
or bundle:list
to interact with the Helios FHIR Server and see some interesting information about the system.
log:tail
tails the Helios FHIR Server system log. You can inspect this log for a message that looks like the lines below to know when the Helios FHIR Server has completed its startup.
12:32:55.471 INFO [features-3-thread-1] Deployment finished. Registering FeatureDeploymentListener
12:32:55.770 INFO [features-3-thread-1] Done.
-
bundle:list
lists all the Bundles that are running in the Helios FHIR Server. This can be an easy way to check if your system is healthy and if the features you want are running.
Check the health of Helios FHIR Server
Using the Karaf shell, run the command bundle:list | grep -i failure
. This command should show any bundles that failed to startup correctly. An empty result indicates success. Should you have a failure, run the command bundle:diag <failed bundle id>
to display the error log for that bundle.
Log in to the Helios FHIR Server interactive web user interface
Navigate to http://localhost:8181/ui
in a browser. You will be prompted to log in, the default credentials are username: admin@heliossoftware.com
and password: admin
.
From here, you can check the status of the system at a glance on the landing dashboard, configure the system, enable and disable FHIR Resources and Search Parameters, and manage the Helios FHIR Server users.
Post Installation Steps
After you have verified the above steps, you should perform the follow post-installation steps:
- Configure Authentication - The Helios FHIR Server ships with open authentication (i.e. no authentication). See the Authentication options and configure for your environment.
- Configure System Settings - Change the Full URL setting for your environment.
- Generate a new JWT key pair
- In the
$KARAF_ROOT/etc
folder, execute the following commands:mv helios-keystore.jks helios-keystore.jks.old
- In the next command, change the
-alias
value fromhelios
to another value of your choice and-storepass
fromchangeit
to another value keytool -genkeypair -keystore helios-keystore.jks -alias helios -keyalg RSA -sigalg SHA384withRSA -storepass changeit
- Change the
keystoreAlias
andkeystorePassword
values in Authentication Settings.
- In the
- After you have setup TLS/HTTPS for your server, change
blockUnsecureRequests
totrue
in Authentication Settings. - If you are using our Reference Architecture, change the
default
value ofrequire_tls
in variables.tf totrue
.
Cassandra Quickstart Guide
Cassandra Docker Install
The easiest way to get started with Cassandra is by using the Cassandra Docker container by running the following series of commands:
First, create a network such that Helios FHIR Server can talk to Cassandra by name. Our network will be called hfs-network
.
docker network create -d bridge hfs-network
Next, startup Cassandra in a container named cassandra
, exposing the 9042 port so that Helios FHIR Server may connect.
docker run -d -p 9042:9042 --name cassandra --net hfs-network cassandra:4.1.3
Finally, check if Cassandra has started successfully.
Cassandra Native Install
The instructions below will walk you through the steps for installing Cassandra on your local machine or on a dedicated server.
First, make sure you have Java 11 installed and that it is your current version.
java -version
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment Homebrew (build 11.0.12+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.12+0, mixed mode)
From here, you can follow the instructions provided by
Apache Cassandra
(Stop when you get to the header Installing the Debian packages
)
Alternatively, we have reproduced the necessary steps here:
Download the Apache Cassandra distribution
Unpack the Apache Cassandra distribution
tar xzvf apache-cassandra-4.1.3-bin.tar.gz
Start Apache Cassandra
cd apache-cassandra-4.1.3
bin/cassandra
Check the Status of Cassandra
Wait until Cassandra has fully started. You should see a message saying "state jump to NORMAL" followed by "Startup complete" in Cassandra's log output.
Alternatively, use the nodetool
utility to check on Cassandra's status.
bin/nodetool status
Once the result is UN
, which stands for Up/Normal
, the Cassandra installation is ready to use with Helios FHIR Server.