mpeltriaux
7027e0c02b
* optimizes image build dependency * increases gunicorn default number of workers |
||
---|---|---|
analysis | ||
api | ||
codelist | ||
compensation | ||
ema | ||
intervention | ||
konova | ||
locale/de/LC_MESSAGES | ||
news | ||
templates | ||
user | ||
.gitignore | ||
docker-compose.yml | ||
docker-entrypoint.sh | ||
Dockerfile | ||
LICENSE_de.md | ||
LICENSE_en.md | ||
manage.py | ||
nginx.conf | ||
README.md | ||
requirements.txt |
Konova
Konova is the successor of KSP. It's build using the python webframework Django, the database postgresql and the css library bootstrap as well as the icon package fontawesome for a modern look, following best practices from the industry.
Background processes
!!! For non-docker run
Konova uses celery for background processing. To start the worker you need to run
$ celery -A konova worker -l INFO
More info can be found here. Redis must be installed.
Technical documentation
Technical documention is provided in the projects git wiki.
User documentation
A user documentation is not available (and not needed, yet).
Docker
To run the docker-compose as expected, you need to take the following steps:
- Create a database containing docker, using an appropriate Dockerfile, e.g. the following
version: '3.3'
services:
postgis:
image: postgis/postgis
restart: always
container_name: postgis-docker
ports:
- 5433:5432
volumes:
- db-volume:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
networks:
- db-network-bridge
networks:
db-network-bridge:
driver: "bridge"
volumes:
db-volume:
This Dockerfile creates a Docker container running postgresql and postgis, creates the default superuser postgres, creates a named volume for persisting the database and creates a new network bridge, which must be used by any other container, which wants to write/read on this database.
- Make sure the name of the network bridge above matches the network in the konova docker-compose.yml
- Get into the running postgis container (
docker exec -it postgis-docker bash
) and create new databases, users and so on. Make sure the databasekonova
exists now! - Replace all
CHANGE_ME_xy
values inside of konova/docker-compose.yml for your installation. Make sure theSSO_HOST
holds the proper SSO host, e.g. for the arnova projectarnova.example.org
(Arnova must be installed and the webserver configured as well, of course) - Take a look on konova/settings.py and konova/sub_settings/django_settings.py. Again: Replace all occurences of
CHANGE_ME
with proper values for your installation.- Make sure you have the proper host strings added to
ALLOWED_HOSTS
inside of django_settings.py.
- Make sure you have the proper host strings added to
- Build and run the docker setup using
docker-compose build
anddocker-compose start
from the main directory of this project (where the docker-compose.yml lives) - Run migrations! To do so, get into the konova service container (
docker exec -it konova-docker bash
) and run the needed commands (python manage.py makemigrations LIST_OF_ALL_MIGRATABLE_APPS
, thenpython manage.py migrate
) - Run the setup command
python manage.py setup
and follow the instructions on the CLI - To enable SMTP mail support, make sure your host machine (the one where the docker container run) has the postfix service configured properly. Make sure the
mynetworks
variable is xtended using the docker network bridge ip, created in the postgis container and used by the konova services.- Hint: You can find out this easily by trying to perform a test mail in the running konova web application (which will fail, of course). Then take a look to the latest entries in
/var/log/mail.log
on your host machine. The failed IP will be displayed there. - Please note: This installation guide is based on SMTP using postfix!
- Restart the postfix service on your host machine to reload the new configuration (
service postfix restart
)
- Hint: You can find out this easily by trying to perform a test mail in the running konova web application (which will fail, of course). Then take a look to the latest entries in
- Finally, make sure your host machine webserver passes incoming requests properly to the docker nginx webserver of konova. A proper nginx config for the host machine may look like this:
server {
server_name konova.domain.org;
location / {
proxy_pass http://localhost:KONOVA_NGINX_DOCKER_PORT/;
proxy_set_header Host $host;
}
}