BotGard 3.0
Open Source Management System for Botanic Garden Collections built and maintained by netzkolchose.de in cooperation with the Botanical Garden of the Friedrich Schiller Universität Jena and the Botanical Garden of the TU Braunschweig.
Features
See Features wiki page for a list of features.
Requirements
To run the System in production mode you'll need:
- Linux or FreeBSD
- Python 3
- PostgreSQL (recommended)
- nginx
- latex live
librsvg2-bin
(labels use thersvg-convert
commandline tool)
Development
To initially set up the development server create a virtual environment using tools like venv or virtualenv and then:
sudo apt install librsvg2-bin
# or any other means to install the rsvg package
cd app
pip install -r requirements.txt
./manage.py migrate
./manage.py createsuperuser
./manage.py botgard_update_config
After that you can just run the development server with:
./manage.py runserver
Postgres is required for proper text search in Django's admin views. If you do not need fulltext search, sqlite will work too.
To create a local database:
sudo apt install postgresql-server-dev-all
# or any other means to install a local postgres server
# start psql
sudo -u postgres psql
# create user and database
CREATE USER "botgard-user" WITH PASSWORD "botgard-password";
CREATE DATABASE "botgard" ENCODING=UTF8 TEMPLATE=template0 OWNER="botgard-user";
# allow the user to create databases (for unit-testing)
ALTER USER "botgard-user" CREATEDB;
To run the unit-tests:
./manage.py collectstatic # needs to be run once before testing
./manage.py test
Docker and CI
Dockerfile and app/start-server.sh are the entry points.
run unittests in docker image
docker build --tag botgard-dev .
docker run -ti --env BOTGARD_RUN_TESTS=1 botgard-dev
The following environment variables will be used by app/BotGard/settings.py if present:
POSTGRES_PASSWORD
: Password of the postgres user, if specified the postgres database backend will be used. Otherwise it falls back to sqlite3.POSTGRES_DATABASE
: Name of the postgres database, defaults topostgres
POSTGRES_USER
: Name of the postgres user, defaults topostgres
POSTGRES_HOST
: Name of the postgres host, defaults tolocalhost
POSTGRES_PORT
: Name of the postgres host port, defaults to5432
DJANGO_SECRET_KEY
: Overrides theSECRET_KEY
, defaults to a fixed sequenceDJANGO_TIME_ZONE
: The default timezone, defaults toEurope/Berlin
DJANGO_ALLOWED_HOSTS
: A list of hosts separated by spaces, defaults to empty listDJANGO_DEBUG
: Set Django debug mode, defaults toTrue
Data migration
The database of BotGard can be exported via:
./manage.py dumpdata -o dump-file.json
and imported into a newly created database via:
./manage.py migrate
./manage.py botgard_clear_django_tables
./manage.py loaddata dump-file.json
The import requires about 10-15 minutes per 100k objects...
Documentation
See the Wiki Page.
Getting Help and Commercial support
This project is backed by netzkolchose.de UG If you need help implementing or hosting BotGard for your Institution, please contact us: [email protected]
Credits
Thanks to the Botanical Garden Jena especially Stefan Arndt for his ongoing support and input.
State and RoadMap
See RoadMap wiki page.