The three prerequisites, which are available on Mac, Windows, and Linux are (we have tested with the versions below, but other versions may be fine too):
Note: Ansible is not supported on Windows. If you want to build a SMART on FHIR VM on Windows,
please use the version of the installer in the "ansible-guest" branch which runs Ansible on the
guest machine instead of using the one on the host OS. To switch the branch, execute
git checkout ansible-guest
before running vagrant up
. Another options is to follow the
instructions in the "Building SMART-on-FHIR on fresh Ubuntu 14.04 machine (without
Vagrant)" section in this document.
Once you have Virtualbox and Vagrant installed on your machine, you can:
vagrant plugin install vagrant-vbguest
git clone https://github.com/smart-on-fhir/installer
cd installer
vagrant up
... wait ~20min while everything installs (depending on your Internet connection speed).
Now visit in a web browser on your local ("host") machine:
http://localhost:9080
for a FHIR API serverhttp://localhost:9085
for an OAuth2 authorization serverhttp://localhost:9090
for a SMART apps server
The authorization server uses the OpenLDAP server running on the virtual machine.
The two sample accounts are demo/demo
and admin/password
by default. You should change
these for production environments. You can connect to the LDAP server on localhost:1389
.
You can poke around the virtual machine by doing:
vagrant ssh
And when you're done you can shut the virtual machine down with:
vagrant halt
apt-get update
apt-get install curl git python-pycurl python-pip python-yaml python-paramiko python-jinja2
pip install ansible==1.8.2
git clone https://github.com/smart-on-fhir/installer
cd installer/provisioning
At this point, you probably want to edit custom_settings.yml
or pass a
vars file with settings that suit your needs. For example, change localhost
to some world-routable hostname if that's what you need -- and set the
app_server public port to 80.
ansible-playbook -c local -i 'localhost,' -vvvv smart-on-fhir-servers.yml
By default, the install process will not enable SSL. To enable SSL for specific services, you can set the following variables to true
:
auth_server_secure_http
: Authorization serverfhir_server_secure_http
: API serverapp_server_secure_http
: App server
What certificates will be used? You have two options:
-
Set
use_custom_ssl_certificates: true
andcustom_ssl_certificate_path: /path/to/cert/dir
. For an example, see our testing server settings. And for an example of what the directory layout should look like, see here. -
If you set
use_custom_ssl_certificates: false
, the installer will geneate self-signed SSL certificates. Please note that with self-signed certificates, you will get a number of trust warning in your web browser that can be resolved by adding certificate exceptions in your browser, or updating your CA list on a client by client basis. Before you even try the apps, you should probably load the API server and add the self-signed certificate to your browser's security exceptions.
By default, the server will load data for only 10 sample patients. To automatically load the entire set of ~60 samples patients, you can update your custom_settings
to increase this limit:
sample_patients_limit: 100