Hi everyone,
I am trying to deploy Senaite Health on a Digital Ocean Droplet. I get as far as installing Plone and configuring a second buildout file (senaite.cfg) but when it comes to running buildout to fetch Senaite Health, I have been getting a multitude of errors. Would anyone have a complete step-by-step guide for setting up Senaite Health on Ubuntu 18.04? Ideally from the initial Plone setup.
Thanks.
Hi @emmk , have you checked the âInstallationâ section from senaite.lims
here?:
Install first the system dependencies, and then follow the well-documented installation instructions for Plone 4 here (4.3.18 version recommended): Installing Plone â Plone Documentation v4.3
Unifier installer for Plone 4.3.18 can be downloaded from here: 4.3.18 : Plone
Once installed, modify the buildout.cfg (as explained in the first link posted above), but add senaite.health
in the eggs
section of the buildout.cfg file too. Your buildout.cfg should look close to the following (note that besides senaite.health
egg, I stick here to Plone 4.3.18 of and Iâve also added index
section):
[buildout]
parts =
instance
extends =
http://dist.plone.org/release/4.3.18/versions.cfg
find-links =
http://dist.plone.org/release/4.3.18
http://dist.plone.org/thirdparty
index =
https://pypi.python.org/simple/
eggs =
Plone
Pillow
senaite.lims
senaite.health
zcml =
eggs-directory = ${buildout:directory}/eggs
[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = 0.0.0.0:8080
eggs =
${buildout:eggs}
zcml =
${buildout:zcml}
[versions]
setuptools =
zc.buildout =
Once you have buildout.cfg
in place, you only need to run bin/buildout
and wait a little bit until it finishes. Then, just start the instance (bin/instance start
for standalone mode or bin/zeoserver start
+ bin/client1 start
for zeo mode). Open a browser and type http://localhost:8080 , install the Senaite site and you are done.
emmk,
I too had trouble installing Senaite on Ubuntu Server 18.04. The instructions on GitHub worked for installing Plone but failed as soon as I added senaite.lims to the eggs. Follow those instructions with the modifications in bold below.
Here is the step-by-step.
Download Plone 4.3.18 unified installer and install
$sudo ./install.sh --build-python --password=YourPassword zeo
cd into your build directory and edit the buildout.cfg
$cd /usr/local/Plone/zeocluster
$sudo gedit buildout.cfg
add senaite.lims in the eggs section
add cairocffi = 0.9.0 to the versions section
The newest version of cairocffi requires Python 3 and weâre using Python 2.7 virtualenv. Youâll get an error if you donât require version 0.9.0 or lower.
$sudo -u plone_buildout bin/buildout
Youâll likely get some warnings and maybe syntax errors about âreturn outside functionâ from the bika package. Notice these but donât worry unless the buildout fails.
$sudo chown -R plone_daemon: /usr/local/Plone
Ownership permission step must be done because senaite.lims egg creates a few files/directories with wrong permissions. This prevents plone_daemon from starting the process. The first permission problem was a log file couldnât be created by plone_daemon. After that I gave up and did the whole directory recursively with the above command. Then
$sudo bin/plonectl start
Wait a few seconds then test in your browser at localhost:8080
Worked for me on two machines running 18.04.
Hi,
I am trying to install senaite lims on my desktop a fedora workstation 29.
I am able to install plone 4.3.18 but the I struggle to understand how to install senaite.lims.
Could you please help?
When ask to "modify âbuildout.cfgâ are you talking about the one in senaite.lims?
should I put senaite.lims in Plone/zinstance?
thanks in advance.
Abibabou
Hi @abibabou,
In case you want to use the python egg from pypi, you can modify the buildout.cfg under zinstance (probably Plone/zintance/buildout.cfg in your case). It is okay for testing purposes, but I would not recommend it for production use.
While using the python egg makes Senaite installation easier, note that using the development environment will offer the most recent modifications and bugfixes. Also, it will allow you to install customized addons.
Here a snipped of my buildout.cfg from Plone (directory: mycomputer/Plone/zinstance/buildout.cfg):
...
...
effective-user = userp
# This user will own the rest of the installation, and should be used to
# run buildout.
buildout-user = userp
# A flag to tell the Unified Installer whether or not to document sudo use.
need-sudo = no
############################################
# Eggs
# ----
# Add an indented line to the eggs section for any Python
# eggs or packages you wish to include in your Plone instance.
#
# Note that versions may be specified here or in the [versions]
# section below. You should always specify versions that you know
# are compatible with the Plone release and at an acceptable
# development level.
#
# If you update to a later version of Plone, remove the hotfix.
#
eggs =
Plone
Pillow
senaite.lims
############################################
# ZCML Slugs
# ----------
# Some eggs need ZCML slugs to tell Zope to
# use them. This is increasingly rare.
zcml =
# plone.reload
############################################
# Development Eggs
# ----------------
# You can use paster to create "development eggs" to
# develop new products/themes. Put these in the src/
# directory.
# You will also need to add the egg names in the
# eggs section above, and may also need to add them
# to the zcml section.
#
# Provide the *paths* to the eggs you are developing here:
develop =
# src/my.package
...
...
Regards,
Adding to what @Jeff-DFWEnv said about adding cairocffi = 0.9.0 to buildout.cfg, I also had to add tinycss2 = 0.6.1.
This should be added to the [versions] section as each a new line near the end of buildout.cfg, which for me defaults to be in Plone/zinstance/buildout.cfg
Please note that this manual version pinning should not be necessary for senaite.core
1.3.0:
This version should be automatically installed when running bin/buildout
and fetch the proper versions.
Best regards
Ramon
I tried this method (Zeo vs instance) and with the additional steps recommended without success. I am still able to get Plone working but everything fails once Senaite (lims, health) eggs are added.
Might there be a step that has been missed in the instructions?
Also, does it matter if I am working on 64 or 32 bit 18.04?
emmk,
An update to the installation instructions since release of senaite.lims 1.3
No longer need to pin cairocffi in your buildout.cfg [versions]
Now need to pin Products.AdvancedQuery =< 4 in [versions]
Can you install as standalone
$sudo ./install.sh --password=YourPassword standalone
then edit buildout.cfg to include senaite.lims in eggs and Products.AdvancedQuery =< 4 in versions
then build it out
$sudo -u plone_buildout bin/buildout
and start in foreground
$sudo bin/instance fg
It should start and listen on port 8080. If not then please post the output. My best guesses are that it canât bind to port 8080 because a process is already running on the port or lack of permission for plone_daemon to certain files in the buildout_cache. If you can post the output we should be able to help.
An alternate install that avoids complications caused by users/groups follows. This install will buildout and start as local user rather than root, plone_buildout, and plone_daemon. Tested on Ubuntu 18.04
Get all dependencies and packages needed
$sudo apt-get install virtualenv
$sudo apt-get install python2.7
$sudo apt-get install build-essential gcc python-dev git-core libffi-dev
$sudo apt-get install libpcre3 libpcre3-dev autoconf libtool pkg-config
$sudo apt-get install zlib1g-dev libssl-dev libexpat1-dev libxslt1.1
$sudo apt-get install gnuplot libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0
$sudo apt-get install libxslt-dev python-pil libjpeg-turbo8-dev
Go to your home folder
$cd /home/jeff
Create a python 2.7 virtual environment then activate it
$virtualenv --python=/usr/bin/python2.7 --no-site-tools /home/jeff/Plone
$cd Plone
$source bin/activate
Git Clone Senaite LIMS
$git clone https://github.com/senaite/senaite.lims.git
$cd senaite.lims
$python bootstrap.py
The buildout.cfg here has lots of parts you donât need for a test install. For developing you will need them. I recommend making only one change. Pin [versions] Products.AdvancedQuery =< 4
Alternatively you can copy the minimal buildout.cfg at the bottom of this message.
Build it out
$bin/buildout
Start the instance
$bin/instance fg
(password is in the buildout.cfg admin:admin)
A stripped down buildout.cfg that contains just the basic parts:
[buildout]
extends = http://dist.plone.org/release/4.3.18/versions.cfg
index = https://pypi.python.org/simple/
find-links =
http://dist.plone.org/release/4.3.18
http://dist.plone.org/thirdparty
parts =
instance
[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
eggs =
Plone
Pillow
senaite.core
senaite.lims
[versions]
Products.AdvancedQuery =< 4
Thanks, this worked for me with some minor modifications and using some of the instructions from your post that followed this. I installed this with a local user (eg. usrlcl).
-
I set up Ubuntu 18.04 x64 as standard with a non-root admin user (usrlcl).
-
Installed dependencies:
- $sudo apt-get install libreadline-dev wv poppler-utils
- Set up Plone 4.3.18 as per instructions for standalone Plone (I guess the filenames would change depending on the Plone version being installed)
- $wget --no-check-certificate https://launchpad.net/plone/4.3/4.3.18/+download/Plone-4.3.18-UnifiedInstaller.tgz
- Extract the downloaded file: $tar -xf Plone-4.3.18-UnifiedInstaller.tgz
- Go the folder containing installer script: $cd Plone-4.3.18-UnifiedInstaller
- Run install script (can take a while): $./install.sh standalone
- Make a note of the admin account credentials provided at the end of the installation.
To start the server:
- $cd ~/Plone/zinstance
- $bin/plonectl start
- Check successful plone installation from your browser at http://your-server:8080
Stop the server:
- $bin/plonectl stop
- First add senaite.lims:
- Edit buildout.cfg: $sudo nano buildout.cfg
- Add the python link as previous posts have indicated:
index =
https://pypi.python.org/simple/
- Add senaite.lims to the eggs section
eggs =
Plone
Pillow
senaite.lims
- Add Products.AdvancedQuery =< 4 to the [versions] section.
- Save your buildout.cfg
- Run buildout: $sudo -u usrlcl bin/buildout
- Restart server: $bin/plonectl start
- Check successful Senaite LIMS installation at http://your-server:8080
- Add Senaite Health:
- Stop the server: $bin/plonectl stop
- Edit buildout.cfg: $sudo nano buildout.cfg
- Add senaite.health to the eggs section
eggs =
Plone
Pillow
senaite.lims
senaite.health
- Save your buildout.cfg
- Run buildout: $sudo -u usrlcl bin/buildout
- Restart server: $bin/plonectl start
- Check successful Senaite Health installation at http://your-server:8080
- Click on âInstall Senaite LIMSâ. Login with the admin credentials created during Plone installation.
- Under the user menu â Site setup â Add-ons, select the Senaite Health add-on and activate it.
- Under the user menu â Site setup â Site setup, provide site title/description details.
- Proceed with further set up of the LIMS to fit your practice.
Has something else changed now? Iâve attempted to install Senaite LIMS multiple times on CentOS and Debian, and I keep getting an errors on the bin/buildout step. As far as I know, Iâve installed all of the dependancies (however, some of them have been deprecated, and Iâve had to use the newly named ones). When I perform the buildout, I get the following:
Creating directory â/Plone/zinstance/eggsâ.
Getting distribution for âmr.developer==1.38â.
no previously-included directories found matching âmr.developer.addonâ
Got mr.developer 1.38.
mr.developer: Queued âsenaite.apiâ for checkout.
mr.developer: Queued âsenaite.coreâ for checkout.
mr.developer: Queued âsenaite.core.listingâ for checkout.
mr.developer: Queued âsenaite.core.supermodelâ for checkout.
mr.developer: Queued âsenaite.impressâ for checkout.
mr.developer: Cloned âsenaite.core.supermodelâ with git using branch âmasterâ from âgit://github.com/senaite/senaite.core.supermodel.gitâ.
mr.developer: Cloned âsenaite.core.listingâ with git using branch âmasterâ from âgit://github.com/senaite/senaite.core.listing.gitâ.
mr.developer: Cloned âsenaite.impressâ with git using branch âmasterâ from âgit://github.com/senaite/senaite.impress.gitâ.
mr.developer: Cloned âsenaite.apiâ with git using branch âmasterâ from âgit://github.com/senaite/senaite.api.gitâ.
mr.developer: Cloned âsenaite.coreâ with git using branch âmasterâ from âgit://github.com/senaite/senaite.core.gitâ.
Getting distribution for âzc.buildoutâ.
no previously-included directories found matching âdocâ
no previously-included directories found matching âold-tutorialâ
Got zc.buildout 2.13.2.
Getting distribution for âsetuptoolsâ.
warning: no previously-included files found matching âpyproject.tomlâ
warning: install_lib: âbuild/libâ does not exist â no Python modules to installzip_safe flag not set; analyzing archive contentsâŠ
Installing setuptools 41.2.0
Caused installation of a distribution:
UNKNOWN 0.0.0
with a different project name.
Installing setuptools 41.2.0
Caused installation of a distribution:
UNKNOWN 0.0.0
with a different version.
Got setuptools 7.0.
Getting distribution for âsetuptoolsâ.
warning: no previously-included files found matching âpyproject.tomlâ
warning: install_lib: âbuild/libâ does not exist â no Python modules to installzip_safe flag not set; analyzing archive contentsâŠ
Installing setuptools 41.2.0
Caused installation of a distribution:
UNKNOWN 0.0.0
with a different project name.
Installing setuptools 41.2.0
Caused installation of a distribution:
UNKNOWN 0.0.0
with a different version.
Got setuptools 7.0.
While:
Installing.
Checking for upgrades.
Error: There is a version conflict.
We already have: UNKNOWN 0.0.0
Plone appears to be working fine, but I do not see any Senaite available in the add-ins section. I think the warnings in this also show that thereâs a problem with no build/lib existing. I donât know how Iâd fix that.
Thanks,
Mark
Please see comment here regarding the version conflict:
Could you update the installation instructions?
Hi @Mark
Add the following to the versions section:
cairocffi = 0.9.0
tinycss2 = 0.6.1
soupsieve = 1.9
backports.functools-lru-cache = 1.5
The cairocffi and tinycss2 versions should have been taken care of already in the code. The last two you definately need.
We also updated the installation instructions on https://www.senaite.com/docs/installation
What is this for? im new on this
Cant find this ???!!!
Hola @serviciosrali19,
Este es un foro pĂșblico donde usuarios de SENAITE, profesionales del sector y desarrolladores del LIMS exponen dudas de forma coherente y ordenada con el fin de obtener una soluciĂłn gracias a la colaboraciĂłn voluntaria de otros profesionales.
El objetivo final del foro es crear contenido de calidad de forma respetuosa, no es una plataforma de servicio técnico. Si buscas soporte profesional, siempre puedes contactar con un proveedor.
Estas tres Ășltimas aportaciones estĂĄn lejos de acometer el objetivo del foro, puedes echar un ojo a las directrices de la comunidad: https://community.senaite.org/t/faq-guidelines/5
Saludos,
Updated 8/28/21 for Senaite 2.0
This is the fastest, simplest way to install Senaite LIMS on Ubuntu 18.04 server for development and testing.
We will install Plone 5 and Senaite 2 in the home folder under the local user name. Start here for testing and development.
Get all dependencies and packages needed
$sudo apt-get install virtualenv
$sudo apt-get install python2.7
$sudo apt-get install build-essential gcc python-dev git-core libffi-dev
$sudo apt-get install libpcre3 libpcre3-dev autoconf libtool pkg-config
$sudo apt-get install zlib1g-dev libssl-dev libexpat1-dev libxslt1.1
$sudo apt-get install gnuplot libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0
$sudo apt-get install libxslt-dev python-pil libjpeg-turbo8-dev
$sudo apt-get install git
You may need more packages depending on what is previously installed on your server.
Make a folder for LIMS in your home directory:
$mkdir ~/LIMS
Create a python 2.7 virtual environment then activate it
$virtualenv --python=/usr/bin/python2.7 --no-site-packages ~/LIMS
$cd ~/LIMS
$source bin/activate
Clone Senaite LIMS verson 2.0 from GitHub:
$git clone https://github.com/senaite/senaite.lims.git
$cd senaite.lims
Make sure you have PIP and wheel installed. zc.buildout and setuptools
$pip install wheel
$pip install zc.buildout==2.13.4
$pip install setuptools==44.1.1
Download bootstrap.py to your senaite.lims directory, then bootstrap for zc.buildout:
$wget https://github.com/senaite/senaite.lims/blob/1.x/bootstrap.py
$python bootstrap.py
Open buildout.cfg with your favorite text editor and change the pinned version of zc.buildout to the version you have in this virtual environment (zc.buildout = 2.13.4). Thatâs at the bottom in [versions] section. You may also choose to change the default admin password now. Find the section
plone-user = admin:admin
And change to
admin:YourAdministratorPassword
Save any changes to buildout.cfg.
OK, Here is the big moment. Time for buildout.
From your senaite.lims directory
$bin/buildout
This will take a while. There will be some warnings and plenty of messages for the buildout log. Hopefully no errors. If you get errors then post them here and the community will help diagnose problem.
If this completes without error then your ready to start working on Senaite LIMS.
Start the instance in foreground
$bin/instance fg
Wait for Zope/Plone/Senaite to start up and listen on port 8080 (or other port you set in buildout.cfg). Initialization will take a couple of minutes. Watch for error messages. Watch for listening and ready to take requests.
If all goes well, open a web browser on same machine and go to URL localhost:8080
Follow Senaite LIMS instructions for configuration.