OMERO.web installation for developers

Getting set up

You will need to have an OMERO server running that you can connect to. This could be on your own machine localhost or you can connect to a remote OMERO server.

The preferred option for developing OMERO.web apps is to install omero-web on your machine as described below.

However, it is also possible to use omero-web-docker to run OMERO.web in a Docker container. If you are using this option, you can go directly to the Creating an app page which describes this process.

Installing OMERO.web

From OMERO 5.6.0 release, the omero-web library supports Python 3 and can be installed via pip. We need to specify a location OMERODIR to create log files and a config.xml file. This can be any existing directory. We recommend you use a virtual environment:

$ python3 -m venv py3_venv
$ source py3_venv/bin/activate

# Somewhere to create config and log files
$ export OMERODIR=$(pwd)

$ pip install 'omero-web>=5.15.0'

Using the lightweight development server

All that is required to use the Django lightweight development server is to set the omero.web.application_server configuration option, and turn omero.web.debug on. If you want to connect to a remote OMERO server, add that as shown. Then start up the development server to run in the foreground:

$ omero config set omero.web.application_server development
$ omero config set omero.web.debug True
$ omero config append omero.web.server_list '["server.address", 4064, "name"]'
$ omero web start
INFO:__main__:Application Starting...
INFO:root:Processing custom settings for module omeroweb.settings
...
Validating models...

0 errors found
Django version 3.2, using settings 'omeroweb.settings'
Starting development server at http://127.0.0.1:4080/
Quit the server with CONTROL-C.

You should now be able to open http://localhost:4080 in your browser, choose the OMERO server and login.

Using WSGI

For convenience you may wish to run a web server under your local user account instead of using a system server for testing. Install NGINX and Gunicorn (See OMERO.web installation and maintenance) but generate a configuration file using the following commands:

$ omero config set omero.web.application_server 'wsgi-tcp'
$ omero web config nginx-development > nginx-development.conf

Start NGINX and the Gunicorn worker processes running one thread listening on 127.0.0.1:4080 that will autoreload on source change:

$ nginx -c $PWD/nginx-development.conf
$ omero config set omero.web.application_server.max_requests 1
$ omero config set omero.web.wsgi_args -- "--reload"
$ omero web start

Next: Get started by Creating an app….