Deployment Guideο
NL-BIOMERO Deployment & Upgrade Guideο
This document outlines several deployment scenarios for the NL-BIOMERO platform. Containers are available prebuilt and deployment is possible on Linux, Windows (via Docker Desktop), or Podman (e.g. RHEL/SELinux). Kubernetes setups should also be possible with shares between services.
Note: The scenarios in this document are examples for inspiration, not official recommendations or complete solutions. You should adapt them to your infrastructure, security posture, and operational requirements.
For detailed docker-compose configurations for each scenario, see Docker Compose Scenarios.
Scenario 0: Development & Demoο
Development-focused deployments with source code access
Suitable for testing, development, and demonstration purposes
Builds containers from local source code
Can include special configurations for easier development workflow
β See Docker Compose Scenarios for specific configurations and usage details.
Scenario 1: Fresh Deployment (no existing data)ο
Deploy all containers using docker-compose (1 server) or across multiple VMs.
Configuration files define all ports, mounts, and credentials.
You can change mounted Docker volumes to be on-disk mounts.
No OMERO data required.
Works on Windows (Docker Desktop), Linux (Docker or Podman).
For Kubernetes, adjust disk mounts and configs accordingly; some data needs to be shared between services.
β See Docker Compose Scenarios for specific deployment configurations.
Scenario 2: Fresh Deployment with Existing Dataο
Use this if restoring an existing OMERO backup.
Requires OMERO backup (just follow the standard OMERO.server backup and restore):
PostgreSQL dump (
pg_dump ...
)Config dump (
omero config get
), store in/OMERO/backup
/OMERO
data backup
Restore using scripts in
backup_and_restore/
:restore/restore_db.sh
/.ps1
restore/restore_server.sh
/.ps1
The config dump is picked up by
00-restore-config.sh
on server startup
Supports upgrade to newer PostgreSQL too (e.g. dump from 11, restore into 16)
OMERO.server version must match w/ container, upgrade locally first if it doesnβt.
β See backup_and_restore/README.md
for exact steps of such restore scripts.
It also describes the opposite (backing up containers).
Scenario 3: Hybrid Deployment with Existing OMERO Serverο
Keep your existing OMERO.server + PostgreSQL.
Deploy (perhaps on a separate VM) only a subset of containers, e.g.:
biomero
,metabase
,omeroweb
,biomero-database
,adi
(BIOMERO & ADI)biomero
,metabase
,omeroweb
,biomero-database
(BIOMERO only)adi
,metabase
,omeroweb
,biomero-database
(ADI only)
Connect these to the external OMERO server through the env/config variables.
Specifically, this would require an OMERO.grid connection between the 2 VMs. See for example the Micron Oxford setup and OMERO docs on multiple hosts for such a split.
Still requires some minimal config/scripts additions to your OMERO server to make the rest work. For now, see the Dockerfile of
server
and its config in the deployment configurations.
β Please contact us directly or on image.sc for help with such a scenario. Weβd love to hear from you and see how we can help streamline such a deployment.
Scenario 4: Full Non-Docker Install (Not Recommended)ο
Manual install of OMERO + BIOMERO + Metabase on disk (e.g. with Ansible).
Not officially supported β too many OS/env dependencies.
Harder to upgrade with new versions or reproduce issues.
But: All Dockerfiles are open source and all install steps can be followed if needed.
Note that Windows is not supported by OMERO itself. And our dockerfiles only show installations on Linux too.
β Use only if containerized deployment is not possible.
Notesο
All mounts and port mappings are defined in the deployment configuration files.
Environment files control ports, secrets, paths β adjust before deploy.
Podman with SELinux is supported (e.g. on RHEL) with volume labels set.
For restore/upgrade: follow OMERO docs: https://omero.readthedocs.io/en/stable/sysadmins/server-backup-and-restore.html
Next Stepsο
Want a quick install? β Start with Scenario 1.
Migrating old data? β Use Scenario 2 and the restore scripts.
Extending an existing OMERO setup? β Use Scenario 3.
Avoiding containers? β Proceed with caution (Scenario 4).
Containers reduce complexity β youβre not stuck managing dependencies or OS quirks.