For privacy reasons YouTube needs your permission to be loaded. For more details, please see our Privacy Policy — RIDING BYTES GmbH.

Docker is convenient for evaluation and development, but production deployments typically run SENAITE directly on a Linux server for better control over performance, security, and backup procedures.

This guide covers a complete SENAITE LIMS installation on a fresh Ubuntu 24.04 server, from system dependencies through to a running instance. The video above demonstrates the full process.

What You Will Set Up

  • Python 2.7.18 via pyenv (SENAITE requires Python 2.7)
  • System dependencies (build tools, libraries, OpenSSL)
  • A zc.buildout configuration for SENAITE
  • A running SENAITE instance in foreground mode

After completing these steps you will have SENAITE accessible at http://your-server:8080/senaite.

Installation Steps

1. Install system dependencies

sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev \
  libbz2-dev libreadline-dev libsqlite3-dev wget curl \
  llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev \
  libffi-dev liblzma-dev git libxml2-dev libxslt1-dev \
  libjpeg-dev libopenjp2-7-dev

2. Install pyenv and Python 2.7.18

curl https://pyenv.run | bash

Add pyenv to your shell profile (follow the output instructions), then:

pyenv install 2.7.18
pyenv global 2.7.18
python --version  # Should show Python 2.7.18

3. Create a buildout project

mkdir senaitelims && cd senaitelims
pip install zc.buildout
cat > buildout.cfg <<EOF
[buildout]
extends = https://dist.plone.org/release/5.2.15/versions.cfg
parts = instance

[instance]
recipe = plone.recipe.zope2instance
eggs =
    Plone
    senaite.lims
user = admin:admin
EOF

4. Run buildout

buildout

This downloads and installs all dependencies. Expect 5 to 15 minutes depending on your internet connection. Build errors are almost always missing system libraries from step 1.

5. Start SENAITE

bin/instance fg

Open http://your-server:8080 in your browser and create a new SENAITE site.

Going to Production

The setup above gives you a working development instance. For production use, you will additionally need:

  • ZEO server for multi-client setups and database locking
  • Nginx or HAProxy as a reverse proxy with SSL termination
  • Supervisor to manage Zope and ZEO processes
  • Regular backups of the ZODB database and blobstorage
  • Database packing (scheduled nightly via cron)

If you prefer a fully managed setup, SENAITE Care provides hosting, monitoring, and maintenance as a service.

Next Steps

Categories: Tutorials

Ramon

Share

Related Posts

  • A laboratory recently contacted us because their nightly database optimization had stopped working. SENAITE LIMS was running fine on the surface — users could log in, create samples, enter results. But under the hood, the database was growing unchecked because the scheduled pack operation was silently failing every [...]

  • We built SENAITY because we needed it ourselves. After years of working with laboratories running SENAITE LIMS, we kept seeing the same pattern: lab managers opening multiple browser tabs, clicking through sample listings, trying to piece together where things stand. Which samples are overdue? What is stuck in [...]

    By Categories: Product Updates