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.

  • 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.



Notes


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.