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):
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/smart-on-fhir-installer/
cd smart-on-fhir-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.6
git clone https://github.com/smart-on-fhir/smart-on-fhir-installer
cd smart-on-fhir-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
While, by default, the install process will not enable SSL, the script can be configured to generate self-signed SSL certificates for the servers and enable secure HTTP. You can inject your own sertificates in the build process too. Should you choose to try the self-signed certificates, please be aware that you will get a number of trust warning in your web browser when you try to run the apps server. These can be resolved on a client-by-client basis by adding certificate exceptions in your browser. 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.