Compare commits

...

96 Commits

Author SHA1 Message Date
mpeltriaux db53cc168a Merge pull request 'master' (#438) from master into Docker
Reviewed-on: #438
1 month ago
mpeltriaux 88dea0ba5a Merge pull request 'master' (#436) from master into Docker
Reviewed-on: #436
2 months ago
mpeltriaux 292077e420 Merge pull request 'master' (#431) from master into Docker
Reviewed-on: #431
2 months ago
mpeltriaux 3eb2a3ab33 Merge pull request 'master' (#429) from master into Docker
Reviewed-on: #429
2 months ago
mpeltriaux 1bb5260f21 Merge pull request 'master' (#426) from master into Docker
Reviewed-on: #426
2 months ago
mpeltriaux 3f3d2fdca5 Merge pull request 'master' (#423) from master into Docker
Reviewed-on: #423
3 months ago
mpeltriaux 686dffdd8b Merge pull request 'master' (#421) from master into Docker
Reviewed-on: #421
3 months ago
mpeltriaux 210304efa8 Merge pull request 'master' (#418) from master into Docker
Reviewed-on: #418
3 months ago
mpeltriaux dab67a5a9c # Image tag
* increases image tag
3 months ago
mpeltriaux ed6763092b Merge branch 'refs/heads/master' into Docker
# Conflicts:
#	konova/celery.py
3 months ago
mpeltriaux ad4b06043c Merge pull request 'master' (#414) from master into Docker
Reviewed-on: #414
3 months ago
mpeltriaux 513f10eef1 # Docker enhancement
* adds logging for gunicorn by default
* adds image tagging
* drops docker-compose environment setting in favor of .env usage (needs to be copied from .env.sample)
3 months ago
mpeltriaux f8c803b401 Merge branch 'refs/heads/master' into Docker
# Conflicts:
#	konova/sub_settings/django_settings.py
#	konova/sub_settings/sso_settings.py
#	requirements.txt
3 months ago
mpeltriaux ef6765b2cb Merge pull request 'master' (#409) from master into Docker
Reviewed-on: #409
4 months ago
mpeltriaux e6e49e8954 Merge pull request 'master' (#403) from master into Docker
Reviewed-on: #403
5 months ago
mpeltriaux b928cdecaa Merge pull request 'master' (#401) from master into Docker
Reviewed-on: #401
5 months ago
mpeltriaux cc0cd791dc Merge pull request 'master' (#399) from master into Docker
Reviewed-on: #399
5 months ago
mpeltriaux 7c5fa8a5b7 Merge branch 'refs/heads/master' into Docker
# Conflicts:
#	konova/sub_settings/sso_settings.py
#	requirements.txt
5 months ago
mpeltriaux a979ac8c19 # Requirements update
* fixes requirements.txt due to django-simple-sso dependency
6 months ago
mpeltriaux 9ba1085701 # Gunicorn update
* updates gunicorn package
6 months ago
mpeltriaux 76c73acaef Merge branch 'refs/heads/master' into Docker
# Conflicts:
#	requirements.txt
6 months ago
mpeltriaux c2cccc4ce9 Merge pull request 'master' (#392) from master into Docker
Reviewed-on: SGD-Nord/konova#392
6 months ago
mpeltriaux 64f6ac66d7 Merge pull request '# Requirements' (#390) from master into Docker
Reviewed-on: SGD-Nord/konova#390
7 months ago
mpeltriaux 9faa43e359 Merge pull request 'master' (#389) from master into Docker
Reviewed-on: SGD-Nord/konova#389
7 months ago
mpeltriaux 8d6edb04ca Merge pull request '# HOTFIX' (#388) from master into Docker
Reviewed-on: SGD-Nord/konova#388
8 months ago
mpeltriaux 9237bdf0f7 Merge pull request 'master' (#387) from master into Docker
Reviewed-on: SGD-Nord/konova#387
8 months ago
mpeltriaux d98d4b4dea Merge pull request 'master' (#385) from master into Docker
Reviewed-on: SGD-Nord/konova#385
8 months ago
mpeltriaux bc43d34f76 Merge pull request 'Docker_django5' (#380) from Docker_django5 into Docker
Reviewed-on: SGD-Nord/konova#380
9 months ago
mpeltriaux c184729b6d # Python bullseye
* adds -bullseye to base docker package to ensure backwards compatibility
9 months ago
mpeltriaux d2b25f389c Django5
* changes python dependency
9 months ago
mpeltriaux c47d6a6a0e Merge pull request 'master' (#379) from master into Docker_django5
Reviewed-on: SGD-Nord/konova#379
9 months ago
mpeltriaux f256e73916 Merge pull request 'Netgis map client fix' (#376) from master into Docker
Reviewed-on: SGD-Nord/konova#376
9 months ago
mpeltriaux 545db50f35 Merge pull request 'master' (#375) from master into Docker
Reviewed-on: SGD-Nord/konova#375
10 months ago
mpeltriaux 7c666fcb06 Merge pull request 'master' (#372) from master into Docker
Reviewed-on: SGD-Nord/konova#372
10 months ago
mpeltriaux b0447bd20e Merge pull request 'HOTFIX netgis client' (#367) from master into Docker
Reviewed-on: SGD-Nord/konova#367
10 months ago
mpeltriaux c7926e09d5 Merge pull request 'Hotfix map client edit errors' (#366) from master into Docker
Reviewed-on: SGD-Nord/konova#366
10 months ago
mpeltriaux 324522bf67 Merge pull request '# Hotfix netgis client' (#365) from master into Docker
Reviewed-on: SGD-Nord/konova#365
10 months ago
mpeltriaux 8fc60d1bc6 Docker-compose fix
* drops local volume usage in favor of copied code into container
10 months ago
mpeltriaux 6e12f1933e Merge branch 'master' into Docker
# Conflicts:
#	requirements.txt
10 months ago
mpeltriaux d7ec842625 Merge pull request 'HOTFIX' (#355) from master into Docker
Reviewed-on: SGD-Nord/konova#355
11 months ago
mpeltriaux 02af67d907 Merge pull request 'HOTFIX' (#354) from master into Docker
Reviewed-on: SGD-Nord/konova#354
12 months ago
mpeltriaux accccb93c2 Merge pull request 'HOTFIX' (#353) from master into Docker
Reviewed-on: SGD-Nord/konova#353
12 months ago
mpeltriaux 4c08756eef Merge pull request 'master' (#351) from master into Docker
Reviewed-on: SGD-Nord/konova#351
12 months ago
mpeltriaux 06197c3cfb Merge pull request 'master' (#348) from master into Docker
Reviewed-on: SGD-Nord/konova#348
1 year ago
mpeltriaux 1ede655057 Merge pull request 'master' (#344) from master into Docker
Reviewed-on: SGD-Nord/konova#344
1 year ago
mpeltriaux 8b064724d9 Merge pull request 'master' (#341) from master into Docker
Reviewed-on: SGD-Nord/konova#341
1 year ago
mpeltriaux bb9f4308b5 Merge pull request 'master' (#336) from master into Docker
Reviewed-on: SGD-Nord/konova#336
1 year ago
mpeltriaux a0be190245 Merge pull request 'master' (#333) from master into Docker
Reviewed-on: SGD-Nord/konova#333
1 year ago
mpeltriaux 83361bd9c7 Merge pull request 'master' (#330) from master into Docker
Reviewed-on: SGD-Nord/konova#330
1 year ago
mpeltriaux ef49752357 Merge pull request 'master' (#327) from master into Docker
Reviewed-on: SGD-Nord/konova#327
1 year ago
mpeltriaux ee136a13ce Merge pull request 'master' (#324) from master into Docker
Reviewed-on: SGD-Nord/konova#324
2 years ago
mpeltriaux 938a96afbf Merge pull request 'master' (#321) from master into Docker
Reviewed-on: SGD-Nord/konova#321
2 years ago
mpeltriaux 830d33b0c0 Merge pull request 'master' (#318) from master into Docker
Reviewed-on: SGD-Nord/konova#318
2 years ago
mpeltriaux b2deb223e9 Merge pull request 'master' (#316) from master into Docker
Reviewed-on: SGD-Nord/konova#316
2 years ago
mpeltriaux 5d2aa43115 Merge pull request 'master' (#313) from master into Docker
Reviewed-on: SGD-Nord/konova#313
2 years ago
mpeltriaux 474fc2f71b Merge pull request 'master' (#311) from master into Docker
Reviewed-on: SGD-Nord/konova#311
2 years ago
mpeltriaux 07a5d7cc3b Merge pull request 'master' (#307) from master into Docker
Reviewed-on: SGD-Nord/konova#307
2 years ago
mpeltriaux 4e071de3e1 Merge pull request 'HOTFIX' (#305) from master into Docker
Reviewed-on: SGD-Nord/konova#305
2 years ago
mpeltriaux 80bcb5e14b Merge pull request 'HOTFIX' (#304) from master into Docker
Reviewed-on: SGD-Nord/konova#304
2 years ago
mpeltriaux 4bc94e78e0 Merge pull request 'master' (#303) from master into Docker
Reviewed-on: SGD-Nord/konova#303
2 years ago
mpeltriaux 452b418ade Merge pull request 'master' (#298) from master into Docker
Reviewed-on: SGD-Nord/konova#298
2 years ago
mpeltriaux 5a0835fc1f Merge pull request 'master' (#295) from master into Docker
Reviewed-on: SGD-Nord/konova#295
2 years ago
mpeltriaux cb38f2a157 Merge pull request 'master' (#292) from master into Docker
Reviewed-on: SGD-Nord/konova#292
2 years ago
mpeltriaux c985b0e8cd Merge pull request 'Quality Check Command enhancement' (#288) from master into Docker
Reviewed-on: SGD-Nord/konova#288
2 years ago
mpeltriaux 12f9684ede Merge pull request 'master' (#287) from master into Docker
Reviewed-on: SGD-Nord/konova#287
2 years ago
mpeltriaux 74a70e159c Merge pull request 'master' (#283) from master into Docker
Reviewed-on: SGD-Nord/konova#283
2 years ago
mpeltriaux 6d725416df Merge pull request 'master' (#279) from master into Docker
Reviewed-on: SGD-Nord/konova#279
2 years ago
mpeltriaux 4d750162b6 Merge pull request 'master' (#276) from master into Docker
Reviewed-on: SGD-Nord/konova#276
2 years ago
mpeltriaux 0e703222d6 Merge pull request 'master' (#273) from master into Docker
Reviewed-on: SGD-Nord/konova#273
2 years ago
mpeltriaux 7e88b7b895 Merge pull request 'master' (#270) from master into Docker
Reviewed-on: SGD-Nord/konova#270
2 years ago
mpeltriaux d1c68195e1 Merge pull request 'Hotfix: Resubmission mail' (#265) from master into Docker
Reviewed-on: SGD-Nord/konova#265
2 years ago
mpeltriaux 0fd3eadf7f Merge pull request 'master' (#264) from master into Docker
Reviewed-on: SGD-Nord/konova#264
2 years ago
mpeltriaux f0801b3683 Merge pull request 'master' (#261) from master into Docker
Reviewed-on: SGD-Nord/konova#261
2 years ago
mpeltriaux dd7fdc396c Merge pull request 'master' (#259) from master into Docker
Reviewed-on: SGD-Nord/konova#259
2 years ago
mpeltriaux 477a39ea87 Merge pull request 'Hotfix' (#256) from master into Docker
Reviewed-on: SGD-Nord/konova#256
2 years ago
mpeltriaux 9e4876c264 Merge pull request 'Revert "File number public reports"' (#254) from master into Docker
Reviewed-on: SGD-Nord/konova#254
2 years ago
mpeltriaux cd596ce03b Merge pull request 'master' (#253) from master into Docker
Reviewed-on: SGD-Nord/konova#253
2 years ago
mpeltriaux f10af784e0 Merge pull request 'master' (#247) from master into Docker
Reviewed-on: SGD-Nord/konova#247
2 years ago
mpeltriaux c68d347f2e Merge pull request 'master' (#245) from master into Docker
Reviewed-on: SGD-Nord/konova#245
2 years ago
mpeltriaux 07c34cadb7 Merge pull request 'Hotfix' (#242) from master into Docker
Reviewed-on: SGD-Nord/konova#242
2 years ago
mpeltriaux c9dac9ad5e Merge pull request 'master' (#241) from master into Docker
Reviewed-on: SGD-Nord/konova#241
2 years ago
mpeltriaux 6a53de8cc4 Merge pull request 'master' (#236) from master into Docker
Reviewed-on: SGD-Nord/konova#236
2 years ago
mpeltriaux 30f8d29616 Merge pull request 'master' (#234) from master into Docker
Reviewed-on: SGD-Nord/konova#234
2 years ago
mpeltriaux ca7dcfff70 Merge pull request 'master' (#227) from master into Docker
Reviewed-on: SGD-Nord/konova#227
2 years ago
mpeltriaux bc331cfaf8 Merge pull request 'master' (#224) from master into Docker
Reviewed-on: SGD-Nord/konova#224
2 years ago
mpeltriaux 63a308b6cb Merge pull request 'master' (#221) from master into Docker
Reviewed-on: SGD-Nord/konova#221
2 years ago
mpeltriaux 65a665d924 Merge pull request 'master' (#219) from master into Docker
Reviewed-on: SGD-Nord/konova#219
2 years ago
mpeltriaux ac05376c5b Merge pull request 'master' (#215) from master into Docker
Reviewed-on: SGD-Nord/konova#215
2 years ago
mpeltriaux 87765187b8 Merge pull request 'master' (#213) from master into Docker
Reviewed-on: SGD-Nord/konova#213
2 years ago
mpeltriaux b57c157c83 Merge pull request 'master' (#210) from master into Docker
Reviewed-on: SGD-Nord/konova#210
2 years ago
mpeltriaux cff1f6ebaf Merge pull request 'master' (#207) from master into Docker
Reviewed-on: SGD-Nord/konova#207
2 years ago
mpeltriaux bb3a538b57 Merge pull request 'master' (#205) from master into Docker
Reviewed-on: SGD-Nord/konova#205
2 years ago
mpeltriaux 8e1d1a13b5 Merge pull request 'Docker Update' (#199) from master into Docker
Reviewed-on: SGD-Nord/konova#199
2 years ago
mpeltriaux 1a0a19531e Merge pull request 'Docker_tmp' (#188) from Docker_tmp into Docker
Reviewed-on: SGD-Nord/konova#188
2 years ago
mpeltriaux 8653166154 Revert "Revert "Merge branch 'Docker' into master""
This reverts commit a955e9f564.
2 years ago
mpeltriaux b89cbc8484 Merge pull request 'master' (#187) from master into Docker_tmp
Reviewed-on: SGD-Nord/konova#187
2 years ago

@ -0,0 +1,27 @@
FROM python:3.11-slim-bullseye
ENV PYTHONUNBUFFERED 1
WORKDIR /konova
# Install some dependencies
RUN apt update
RUN apt install -y gdal-bin redis-server nginx
# Copy requirements file into workspace and install all dependencies
COPY ./requirements.txt /konova/
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
# Remove nginx default configuration and replace with own configuration
RUN rm /etc/nginx/sites-enabled/default
COPY ./nginx.conf /etc/nginx/conf.d
# Create log folders
RUN mkdir /var/log/gunicorn
# Copy rest of project into workspace
COPY . /konova/
# Move static files in designated folder
RUN python manage.py collectstatic --noinput

@ -4,6 +4,7 @@ the database postgresql and the css library bootstrap as well as the icon packag
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
@ -18,3 +19,58 @@ Technical documention is provided in the projects git wiki.
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;
}
}
```

@ -0,0 +1,23 @@
version: '3.3'
services:
konova:
external_links:
- postgis:db
- arnova-nginx-server:arnova
build: .
image: "ksp/konova:1.8"
container_name: "konova-docker"
command: ./docker-entrypoint.sh
restart: always
volumes:
- /data/apps/konova/uploaded_files:/konova_uploaded_files
ports:
- "1337:80"
# Instead of an own, new network, we need to connect to the existing one, which is provided by the postgis container
# NOTE: THIS NETWORK MUST EXIST
networks:
default:
external:
name: postgis_nat_it_backend

@ -0,0 +1,7 @@
#!/bin/bash
# Start all needed services once the container is fired up!
service nginx start
service redis-server start
celery -A konova worker --detach
# Rule of thumb: (2*CPU)+1 as worker_num -> Use 5 as default (matches a dual core)
gunicorn --workers=5 konova.wsgi:application --bind=0.0.0.0:8000 --access-logfile /var/log/gunicorn/access.log --error-logfile /var/log/gunicorn/error.log

@ -193,11 +193,10 @@ STATICFILES_DIRS = [
]
# EMAIL (see https://docs.djangoproject.com/en/dev/topics/email/)
# CHANGE_ME !!! ONLY FOR DEVELOPMENT !!!
if DEBUG:
# ONLY FOR DEVELOPMENT NEEDED
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = '/tmp/app-messages' # change this to a proper location
EMAIL_FILE_PATH = '/tmp/app-messages'
DEFAULT_FROM_EMAIL = env("DEFAULT_FROM_EMAIL") # The default email address for the 'from' element
SERVER_EMAIL = DEFAULT_FROM_EMAIL # The default email sender address, which is used by Django to send errors via mail

@ -0,0 +1,20 @@
upstream konova {
server localhost:8000;
}
server {
listen 80;
location / {
proxy_pass http://konova;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /konova/static/;
}
}
Loading…
Cancel
Save