Installation
SENAITE is an add-on for the Plone Content Management Framework. Installation therefore depends on a working Python environment and the Buildout tool.
Supported Platforms
SENAITE runs on Linux. The recommended distribution is Ubuntu 22.04 LTS or Ubuntu 24.04 LTS. Debian is equally supported. macOS works for development but is not recommended for production deployments.
Installation on Windows is not covered in this guide.
Python Requirement
The current SENAITE release series is based on Plone 5.2, which requires Python 2.7. It is strongly recommended to manage Python using Pyenv rather than the system interpreter to avoid version conflicts and permission issues.
Step 1: Install System Packages
Log in to a fresh Ubuntu installation and install the required packages:
sudo apt update
sudo apt install build-essential git byobu zsh \
libpcre3-dev libcairo2 libpango-1.0-0 \
libpangocairo-1.0-0
Required packages for building Python:
sudo apt install libbz2-dev zlib1g-dev libssl-dev \
libsqlite3-dev libffi-dev uuid-dev libnss3-dev \
libgdbm-dev libgdbm-compat-dev libncursesw5-dev \
liblzma-dev libreadline-dev
Step 2: Install Pyenv
curl https://pyenv.run | bash
Add the following lines to ~/.bashrc (or ~/.zshrc if using Zsh):
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
Reload your shell:
source ~/.bashrc
Step 3: Install Python 2.7 and Create a Virtual Environment
pyenv install 2.7.18
pyenv virtualenv 2.7.18 senaite
pyenv activate senaite
Verify the active interpreter:
which python
# /home/user/.pyenv/versions/senaite/bin/python
Step 4: Set Up a SENAITE Directory
mkdir senaite && cd senaite
Create a requirements.txt file:
setuptools==44.1.1
zc.buildout==2.13.8
wheel
Install the requirements:
pip install -r requirements.txt
Step 5: Create buildout.cfg
Create a buildout.cfg file with the following content. Replace the version
pin for senaite.lims with the latest release from PyPI.
[buildout]
index = https://pypi.org/simple/
extends = https://dist.plone.org/release/5.2.15/versions.cfg
find-links =
https://dist.plone.org/release/5.2.15/
https://dist.plone.org/thirdparty/
parts =
instance
eggs =
senaite.lims
eggs-directory = eggs
download-cache = downloads
[instance]
recipe = plone.recipe.zope2instance
http-address = 0.0.0.0:8080
user = admin:admin
wsgi = on
eggs =
${buildout:eggs}
[versions]
senaite.lims = 2.6.0
et-xmlfile = 1.1.0
Step 6: Run Buildout
buildout -c buildout.cfg
Buildout downloads and installs all required packages. This can take several minutes on first run.
Step 7: Start SENAITE
Start the server in foreground mode:
bin/instance fg
The server is ready when the log shows:
INFO Zope Ready to handle requests
Open a browser and navigate to http://localhost:8080.
Log in with admin:admin and press the Install SENAITE LIMS button on
the site setup page.
The SENAITE dashboard appears once the installation completes.
Starting and Stopping
# Start in background (production mode)
bin/instance start
# Stop the server
bin/instance stop
# Start in foreground (debug mode, verbose logging)
bin/instance fg