76 lines
4.0 KiB
Markdown
76 lines
4.0 KiB
Markdown
# 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
|
|
```shell
|
|
$ celery -A konova worker -l INFO
|
|
```
|
|
More info can be found [here](https://docs.celeryproject.org/en/stable/getting-started/first-steps-with-celery.html#running-the-celery-worker-server).
|
|
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:
|
|
|
|
1. 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**.
|
|
|
|
2. Make sure the name of the network bridge above matches the network in the konova docker-compose.yml
|
|
3. Get into the running postgis container (`docker exec -it postgis-docker bash`) and create new databases, users and so on. Make sure the database `konova` exists now!
|
|
4. Replace all `CHANGE_ME_xy` values inside of konova/docker-compose.yml for your installation. Make sure the `SSO_HOST` holds the proper SSO host, e.g. for the arnova project `arnova.example.org` (Arnova must be installed and the webserver configured as well, of course)
|
|
5. 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.
|
|
1. Make sure you have the proper host strings added to `ALLOWED_HOSTS` inside of django_settings.py.
|
|
6. Build and run the docker setup using `docker-compose build` and `docker-compose start` from the main directory of this project (where the docker-compose.yml lives)
|
|
7. 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`, then `python manage.py migrate`)
|
|
8. Run the setup command `python manage.py setup` and follow the instructions on the CLI
|
|
9. 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.
|
|
1. **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.
|
|
2. **Please note**: This installation guide is based on SMTP using postfix!
|
|
3. Restart the postfix service on your host machine to reload the new configuration (`service postfix restart`)
|
|
10. 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;
|
|
}
|
|
}
|
|
``` |