ohif-viewer/docs/deployment/building-for-production.md
2018-01-30 15:05:15 +01:00

153 lines
4.6 KiB
Markdown

# Building for Production
**This tutorial considers the current folder as `OHIFViewer/`**.
### Dependencies
First, you need to have installed:
- [Node.js](https://nodejs.org/) and [NPM](https://www.npmjs.com/)
- [Meteor](https://www.meteor.com/)
- [MongoDB](https://www.mongodb.com/)
**MongoDB** is actually **not required** if you have a **remote MongoDB**. If your database is **local** then you need to have it running.
### Check your packages
Inside of the viewer folder make sure NPM packages are updated for production:
```bash
npm install --production
```
### Building
There are two ways of building OHIF Viewer for a specific DICOM server: **Automatically** or **Manually**.
For both, we use the `meteor build` (check it's [docs](https://guide.meteor.com/deployment.html#custom-deployment)) app and **Orthanc Dicom Web Server**.
For `meteor build` it's necessary to inform an output folder `myOutputFolder`.
**Remember to change `myOutputFolder` to your folder location.**
OHIF Viewer will be built using **Orthanc DICOM Web server** configuration file `../config/orthancDICOMWeb.json` to set `METEOR_SETTINGS` environment var.
*To run with another server, just point to the corresponding `.json` located in `config` folder or create your own.*
#### Build automatically
After this step, go directly to [Prepare to run production build](#prepare-to-run-production-build).
##### Non-windows users
```bash
METEOR_PACKAGE_DIRS="../Packages" METEOR_SETTINGS=$(cat ../config/orthancDICOMWeb.json) meteor build --directory myOutputFolder
```
##### Windows users
Since there is no `cat` command in Windows `cmd`, use Windows `PowerShell` (at least version 3.0) instead.
In `PowerShell`, open a new shell as an `admin`:
```bash
Start-Process powershell -Verb runAs
```
Then:
**Remember to change `OHIFViewerFolderLocation` to OHIFViewer's folder location.**
```bash
cd OHIFViewerFolderLocation
$settings = Get-Content ..\config\orthancDICOMWeb.json -Raw
$settings = $settings -replace "`n","" -replace "`r","" -replace " ",""
[Environment]::SetEnvironmentVariable("METEOR_SETTINGS", $settings, "Machine")
SET METEOR_PACKAGE_DIRS="../Packages"
meteor build --directory myOutputFolder
```
#### Build manually
OHIF Viewer will be built normally, but with no DICOM Server information, which needs to be added when running the build. This is described in [Manually adding DICOM Server to the Viewer](#manually-adding-dicom-server-to-the-viewer).
##### Non-windows users
```bash
METEOR_PACKAGE_DIRS="../Packages" meteor build --directory myOutputFolder
```
##### Windows users in `cmd`
```bash
SET METEOR_PACKAGE_DIRS="../Packages"
meteor build --directory myOutputFolder
```
### Prepare to run production build
If everything went ok, `meteor build` created a `bundle` folder inside `myOutputFolder`.
**Remember to change `myOutputFolder` to your folder location.**
Go to that folder:
```bash
cd myOutputFolder/bundle
```
Now install the **NPM dependencies**:
```bash
cd programs/server
npm install
```
### To run production build
Go back to the `bundle` folder:
```bash
cd ../..
```
or (**Remember to change `myOutputFolder` to your folder location.**):
```bash
cd myOutputFolder/bundle
```
3 environment variables are set before running Node.js:
- `MONGO_URL`: is the url to MongoDB. If it's **local**, you need to have it running
- `ROOT_URL`: the hostname where you can access your Viewer in the browser
- `PORT`: the port the Viewer will run
This way, the Viewer can be accessed in `http://localhost:3000`, with MongoDB running locally using 27017 port (it's default).
##### Non-windows users
```bash
MONGO_URL=mongodb://localhost:27017/myapp ROOT_URL=http://localhost PORT=3000 node main.js
```
##### Windows users in `cmd`
```bash
SET MONGO_URL=mongodb://localhost:27017/myapp
SET ROOT_URL=http://localhost
SET PORT=3000
node main.js
```
### Manually adding DICOM Server to the Viewer
If DICOM Server was configured automatically during the building process, skip this step.
Access the viewer `http://localhost:3000` and toggle the **Options** menu, located at top right corner. Select **Server Information** option.
In **Server Information** dialog click on **Add a new server** button and fill the fields accordingly to the DICOM Server to be added.
In case of doubts about any field in this dialog, use `config/orthancDICOMWeb.json` as reference.
After filling the form, click on the **Save** button and the new server will be listed. Make sure to activate it by clicking on the left most button (a checkbox button) in the **Actions** column.
Refresh the page and Viewer will be connected to the DICOM Server.