OMERO.web installation on Mac OS X and IcePy 3.6

Please first read OMERO.server installation on OS X with Homebrew.

This is an example walkthrough for installing OMERO.web decoupled from the OMERO.server in a virtual environment using OMERO.py and a dedicated system user. Installing OMERO.web in a virtual environment is the preferred way. For convenience in this walkthrough, we will use the ** system user** and define the main OMERO.web configuration options as environment variables.

The following steps are run as root.

Install Homebrew in /usr/local:

xcode-select --install


ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew update
brew doctor

Installing prerequisites

Install dependencies:

brew install python
brew install nginx
pip install --upgrade virtualenv

Creating virtual environment

Create the virtual environment. This is the preferred way to install OMERO.web:

# option 1: in a virtual environment with --system-site-packages on
virtualenv ~/omerowebvenv --system-site-packages

# option 2: in a virtual environment with --system-site-packages off
virtualenv ~/omerowebvenv

Installing OMERO.web

Install OMERO.web using OMERO.py:

cd ~
curl -o OMERO.py.zip -L https://downloads.openmicroscopy.org/latest/omero5/py.zip
unzip -q OMERO.py*

zip=$(ls OMERO.py*.zip)
rm -f $zip
ln -s OMERO.py-* OMERO.py

Install dependencies:

brew install python
brew install nginx
pip install --upgrade virtualenv

Install the OMERO.web requirements. Select one of the commands corresponding to the way you have opted to install it:

# option 1: in a virtual environment with --system-site-packages on
~/omerowebvenv/bin/pip install --upgrade -r ~/OMERO.py/share/web/requirements-py27.txt

# option 2: in a virtual environment with --system-site-packages off
~/omerowebvenv/bin/pip install --upgrade -r ~/OMERO.py/share/web/requirements-py27-all.txt

Configuring OMERO.web

For convenience the main OMERO.web configuration options have been defined as environment variables. You can either use your own values, or alternatively use the following ones:

export WEBPORT=80
export WEBSERVER_NAME=localhost

Configure OMERO.web and create the NGINX OMERO configuration file:

. ~/omerowebvenv/bin/activate

~/OMERO.py/bin/omero config set omero.web.application_server wsgi-tcp
~/OMERO.py/bin/omero web config nginx --http "${WEBPORT}" --servername "${WEBSERVER_NAME}" > ~/nginx.conf.tmp

For more customization, please read Customizing your OMERO.web installation.

Configuring Gunicorn

Additional settings can be configured by changing the following properties:

Configuring NGINX

Copy the generated configuration file into the NGINX configuration directory:

cp ~/nginx.conf.tmp /usr/local/etc/nginx/servers/omeroweb-nginx.conf

# Restart webserver
brew services restart nginx

Standalone OMERO.web

Install WhiteNoise:

. ~/omerowebvenv/bin/activate

pip install --upgrade 'whitenoise<4'

Configure WhiteNoise and start OMERO.web manually to test the installation:

. ~/omerowebvenv/bin/activate

~/OMERO.py/bin/omero config append -- omero.web.middleware '{"index": 0, "class": "whitenoise.middleware.WhiteNoiseMiddleware"}'

~/OMERO.py/bin/omero web start

# Test installation e.g. curl -sL localhost:4080

~/OMERO.py/bin/omero web stop

Running OMERO.web

Start up services:

source ~/omerowebvenv/bin/activate

# Start OMERO.web
~/OMERO.py/bin/omero web start

Maintenance

Please read OMERO.web maintenance.