Compare commits

...
125 Commits
Author SHA1 Message Date
mpeltriaux 36552b3886 Merge pull request 'master' (#502) from master into Docker
Reviewed-on: #502
2025-11-19 13:16:48 +01:00
mpeltriaux 22cddb9902 Merge pull request '# Fix for #500' (#501) from 500_Geometry_conflicts_still_visible into master
Reviewed-on: #501
2025-11-19 13:16:30 +01:00
mpeltriaux c986bd0b92 # Fix for #500
* fixes bug where de-facto deleted compensations (because of deleted intervention) would still show up as geometry conflicts on other entries
2025-11-19 13:16:09 +01:00
mpeltriaux a766c4dbe8 Merge pull request 'master' (#499) from master into Docker
Reviewed-on: #499
2025-11-07 14:12:18 +01:00
mpeltriaux 2c60d86177 Merge pull request '# Update netgis map client' (#498) from netgis_map_client into master
Reviewed-on: #498
2025-11-07 14:11:57 +01:00
mpeltriaux b7792ececc # Update netgis map client
* updates netgis map client (bugfix for https://github.com/sebastianpauli/netgis-client/issues/43#issuecomment-3446898016)
2025-11-07 14:11:15 +01:00
mpeltriaux 8126781b77 Merge pull request 'master' (#496) from master into Docker
Reviewed-on: #496
2025-10-23 16:13:04 +02:00
mpeltriaux a6a66d7499 Merge pull request 'master' (#493) from master into Docker
Reviewed-on: #493
2025-10-21 15:59:53 +02:00
mpeltriaux 1c0b67693d Merge pull request 'master' (#489) from master into Docker
Reviewed-on: #489
2025-10-15 09:51:46 +02:00
mpeltriaux ce6bb6b23b Merge pull request 'master' (#486) from master into Docker
Reviewed-on: #486
2025-10-12 11:32:27 +02:00
mpeltriaux 0b8176db2e Merge pull request 'master' (#484) from master into Docker
Reviewed-on: #484
2025-09-22 12:37:34 +02:00
mpeltriaux 3a299a040a Merge pull request 'master' (#482) from master into Docker
Reviewed-on: #482
2025-08-18 08:47:01 +02:00
mpeltriaux 3c5206139b Merge pull request 'master' (#477) from master into Docker
Reviewed-on: #477
2025-05-12 15:40:21 +02:00
mpeltriaux 6c53f39a28 Merge pull request 'master' (#474) from master into Docker
Reviewed-on: #474
2025-03-28 16:41:31 +01:00
mpeltriaux 64d8f47174 Merge pull request 'Docker_enhanced' (#472) from Docker_enhanced into Docker
Reviewed-on: #472
2025-03-28 16:11:18 +01:00
mpeltriaux f5f3246e89 # Docker enhancements
* optimizes nginx.conf
   * better logging of proxied requests
2025-03-24 14:17:08 +01:00
mpeltriaux ad8961ab82 # Docker enhancements
* optimizes nginx.conf
   * better proxy pipelining
* optimizes Dockerfile
   * smaller resulting image
   * faster rebuilding due to reusing of existing layers
* optimizes docker-entrypoint.sh
   * better startup performance
   * better compatibility with docker engine
2025-03-24 13:52:31 +01:00
mpeltriaux c2c8630c82 Merge pull request 'master' (#471) from master into Docker
Reviewed-on: #471
2025-02-14 15:33:19 +01:00
mpeltriaux dce9e1fc71 # Enhancements
* increases nginx max POST body size to 25MB (document upload)
* limits package requests on version 2.32 due to dependency of kombu to this version
2025-01-24 16:21:55 +01:00
mpeltriaux 2b84bab1d0 Merge pull request 'master' (#469) from master into Docker
Reviewed-on: #469
2025-01-24 16:12:33 +01:00
mpeltriaux 303583daa1 Merge pull request 'master' (#466) from master into Docker
Reviewed-on: #466
2025-01-21 13:44:14 +01:00
mpeltriaux d07b2ffbfb Merge pull request 'master' (#463) from master into Docker
Reviewed-on: #463
2025-01-08 16:05:15 +01:00
mpeltriaux 335800c44b Merge pull request 'master' (#459) from master into Docker
Reviewed-on: #459
2024-12-23 13:42:36 +01:00
mpeltriaux 5766cfde47 Merge pull request 'master' (#454) from master into Docker
Reviewed-on: #454
2024-12-23 12:09:47 +01:00
mpeltriaux 2ed3fcc0f9 Merge pull request 'master' (#449) from master into Docker
Reviewed-on: #449
2024-11-13 16:09:48 +01:00
mpeltriaux bf72295615 Merge pull request 'master' (#447) from master into Docker
Reviewed-on: #447
2024-10-26 10:25:06 +02:00
mpeltriaux 6b860f8ea5 Merge pull request 'master' (#445) from master into Docker
Reviewed-on: #445
2024-10-26 09:48:50 +02:00
mpeltriaux 2fa2fa547b Merge pull request 'master' (#443) from master into Docker
Reviewed-on: #443
2024-10-25 19:27:23 +02:00
mpeltriaux 3de956872c Merge pull request 'master' (#441) from master into Docker
Reviewed-on: #441
2024-10-25 14:24:55 +02:00
mpeltriaux 1c8e3992d6 Merge pull request 'master' (#438) from master into Docker
Reviewed-on: #438
2024-08-26 18:57:35 +02:00
mpeltriaux e6e9e141c8 Merge pull request 'master' (#436) from master into Docker
Reviewed-on: #436
2024-08-19 18:35:17 +02:00
mpeltriaux f8ece06ee8 Merge pull request 'master' (#431) from master into Docker
Reviewed-on: #431
2024-08-07 12:07:22 +02:00
mpeltriaux 149a351bfd Merge pull request 'master' (#429) from master into Docker
Reviewed-on: #429
2024-08-07 12:02:21 +02:00
mpeltriaux 0164717b8e Merge pull request 'master' (#426) from master into Docker
Reviewed-on: #426
2024-08-06 14:28:41 +02:00
mpeltriaux 104952bfc3 Merge pull request 'master' (#423) from master into Docker
Reviewed-on: #423
2024-07-10 09:30:30 +02:00
mpeltriaux f96241c8d1 Merge pull request 'master' (#421) from master into Docker
Reviewed-on: #421
2024-07-10 09:27:09 +02:00
mpeltriaux ac6b534f58 Merge pull request 'master' (#418) from master into Docker
Reviewed-on: #418
2024-07-08 18:44:22 +02:00
mpeltriaux 06910cd69a # Image tag
* increases image tag
2024-07-05 10:56:10 +02:00
mpeltriaux a48ba520fc Merge branch 'refs/heads/master' into Docker
# Conflicts:
#	konova/celery.py
2024-07-05 10:52:13 +02:00
mpeltriaux 9f18aa5890 Merge pull request 'master' (#414) from master into Docker
Reviewed-on: #414
2024-07-04 11:42:20 +02:00
mpeltriaux ab3bd84f3b # 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)
2024-07-04 09:37:13 +02:00
mpeltriaux f829cd5a4c Merge branch 'refs/heads/master' into Docker
# Conflicts:
#	konova/sub_settings/django_settings.py
#	konova/sub_settings/sso_settings.py
#	requirements.txt
2024-07-04 09:30:41 +02:00
mpeltriaux 0f2bf95b71 Merge pull request 'master' (#409) from master into Docker
Reviewed-on: #409
2024-06-18 11:50:43 +02:00
mpeltriaux 6a307016ec Merge pull request 'master' (#403) from master into Docker
Reviewed-on: #403
2024-05-17 10:59:17 +02:00
mpeltriaux 51017ef8fa Merge pull request 'master' (#401) from master into Docker
Reviewed-on: #401
2024-05-17 07:54:16 +02:00
mpeltriaux 05560534bc Merge pull request 'master' (#399) from master into Docker
Reviewed-on: #399
2024-05-16 17:37:56 +02:00
mpeltriaux c882173e78 Merge branch 'refs/heads/master' into Docker
# Conflicts:
#	konova/sub_settings/sso_settings.py
#	requirements.txt
2024-05-16 15:22:57 +02:00
mpeltriaux 1d94211428 # Requirements update
* fixes requirements.txt due to django-simple-sso dependency
2024-04-12 08:51:18 +02:00
mpeltriaux 37357080d8 # Gunicorn update
* updates gunicorn package
2024-04-12 08:08:27 +02:00
mpeltriaux 5afa13ac92 Merge branch 'refs/heads/master' into Docker
# Conflicts:
#	requirements.txt
2024-04-12 08:07:05 +02:00
mpeltriaux 416cad1c8f Merge pull request 'master' (#392) from master into Docker
Reviewed-on: SGD-Nord/konova#392
2024-04-02 08:11:08 +02:00
mpeltriaux b5f83b7163 Merge pull request '# Requirements' (#390) from master into Docker
Reviewed-on: SGD-Nord/konova#390
2024-03-11 08:22:35 +01:00
mpeltriaux 20cfb5f345 Merge pull request 'master' (#389) from master into Docker
Reviewed-on: SGD-Nord/konova#389
2024-02-29 18:39:41 +01:00
mpeltriaux 88c96b95f2 Merge pull request '# HOTFIX' (#388) from master into Docker
Reviewed-on: SGD-Nord/konova#388
2024-02-21 18:32:16 +01:00
mpeltriaux f6c500b02a Merge pull request 'master' (#387) from master into Docker
Reviewed-on: SGD-Nord/konova#387
2024-02-16 10:16:43 +01:00
mpeltriaux d702cd8716 Merge pull request 'master' (#385) from master into Docker
Reviewed-on: SGD-Nord/konova#385
2024-02-16 08:45:32 +01:00
mpeltriaux 329cdd4838 Merge pull request 'Docker_django5' (#380) from Docker_django5 into Docker
Reviewed-on: SGD-Nord/konova#380
2024-01-05 17:39:48 +01:00
mpeltriaux 1b70024a29 # Python bullseye
* adds -bullseye to base docker package to ensure backwards compatibility
2024-01-05 17:38:58 +01:00
mpeltriaux 58206853ee Django5
* changes python dependency
2024-01-05 10:05:27 +01:00
mpeltriaux 6356398c40 Merge pull request 'master' (#379) from master into Docker_django5
Reviewed-on: SGD-Nord/konova#379
2024-01-05 09:47:53 +01:00
mpeltriaux 8519922d78 Merge pull request 'Netgis map client fix' (#376) from master into Docker
Reviewed-on: SGD-Nord/konova#376
2023-12-28 15:13:11 +01:00
mpeltriaux 5ac0654fd4 Merge pull request 'master' (#375) from master into Docker
Reviewed-on: SGD-Nord/konova#375
2023-12-13 13:38:00 +01:00
mpeltriaux 6c07a81b4f Merge pull request 'master' (#372) from master into Docker
Reviewed-on: SGD-Nord/konova#372
2023-12-12 07:35:17 +01:00
mpeltriaux ba45b4f961 Merge pull request 'HOTFIX netgis client' (#367) from master into Docker
Reviewed-on: SGD-Nord/konova#367
2023-12-07 06:44:47 +01:00
mpeltriaux 280de82a52 Merge pull request 'Hotfix map client edit errors' (#366) from master into Docker
Reviewed-on: SGD-Nord/konova#366
2023-12-05 07:29:41 +01:00
mpeltriaux 6022e2d879 Merge pull request '# Hotfix netgis client' (#365) from master into Docker
Reviewed-on: SGD-Nord/konova#365
2023-12-05 07:06:19 +01:00
mpeltriaux 1996efcc0d Docker-compose fix
* drops local volume usage in favor of copied code into container
2023-11-30 12:44:50 +01:00
mpeltriaux 80569119cb Merge branch 'master' into Docker
# Conflicts:
#	requirements.txt
2023-11-30 12:43:44 +01:00
mpeltriaux 98e71d4e8a Merge pull request 'HOTFIX' (#355) from master into Docker
Reviewed-on: SGD-Nord/konova#355
2023-11-07 16:27:11 +01:00
mpeltriaux fec7191ac2 Merge pull request 'HOTFIX' (#354) from master into Docker
Reviewed-on: SGD-Nord/konova#354
2023-10-26 07:27:19 +02:00
mpeltriaux 9b1085f206 Merge pull request 'HOTFIX' (#353) from master into Docker
Reviewed-on: SGD-Nord/konova#353
2023-10-26 07:23:21 +02:00
mpeltriaux b35d175a5c Merge pull request 'master' (#351) from master into Docker
Reviewed-on: SGD-Nord/konova#351
2023-10-25 10:10:14 +02:00
mpeltriaux 7f5fb022ac Merge pull request 'master' (#348) from master into Docker
Reviewed-on: SGD-Nord/konova#348
2023-09-15 13:21:38 +02:00
mpeltriaux 2d3314ab18 Merge pull request 'master' (#344) from master into Docker
Reviewed-on: SGD-Nord/konova#344
2023-08-25 15:06:32 +02:00
mpeltriaux 8b489f013d Merge pull request 'master' (#341) from master into Docker
Reviewed-on: SGD-Nord/konova#341
2023-08-09 07:30:18 +02:00
mpeltriaux 16ce5506d8 Merge pull request 'master' (#336) from master into Docker
Reviewed-on: SGD-Nord/konova#336
2023-05-17 14:40:17 +02:00
mpeltriaux e440bf8372 Merge pull request 'master' (#333) from master into Docker
Reviewed-on: SGD-Nord/konova#333
2023-05-16 14:11:20 +02:00
mpeltriaux 607db267e6 Merge pull request 'master' (#330) from master into Docker
Reviewed-on: SGD-Nord/konova#330
2023-04-26 11:30:22 +02:00
mpeltriaux 352ca64e09 Merge pull request 'master' (#327) from master into Docker
Reviewed-on: SGD-Nord/konova#327
2023-04-19 15:25:05 +02:00
mpeltriaux f2b735da6e Merge pull request 'master' (#324) from master into Docker
Reviewed-on: SGD-Nord/konova#324
2023-03-30 15:12:47 +02:00
mpeltriaux 6f7cfb713e Merge pull request 'master' (#321) from master into Docker
Reviewed-on: SGD-Nord/konova#321
2023-03-28 13:53:14 +02:00
mpeltriaux 103b703ee9 Merge pull request 'master' (#318) from master into Docker
Reviewed-on: SGD-Nord/konova#318
2023-03-24 07:14:34 +01:00
mpeltriaux daf8b1dce6 Merge pull request 'master' (#316) from master into Docker
Reviewed-on: SGD-Nord/konova#316
2023-03-22 09:00:33 +01:00
mpeltriaux c088affd74 Merge pull request 'master' (#313) from master into Docker
Reviewed-on: SGD-Nord/konova#313
2023-03-16 08:14:37 +01:00
mpeltriaux ecc727c991 Merge pull request 'master' (#311) from master into Docker
Reviewed-on: SGD-Nord/konova#311
2023-03-13 07:00:49 +01:00
mpeltriaux 632569fa5d Merge pull request 'master' (#307) from master into Docker
Reviewed-on: SGD-Nord/konova#307
2023-02-23 15:35:07 +01:00
mpeltriaux 6c6cbb7396 Merge pull request 'HOTFIX' (#305) from master into Docker
Reviewed-on: SGD-Nord/konova#305
2023-02-23 12:03:23 +01:00
mpeltriaux 5e6bfdf77e Merge pull request 'HOTFIX' (#304) from master into Docker
Reviewed-on: SGD-Nord/konova#304
2023-02-23 10:45:57 +01:00
mpeltriaux 35e5e18b79 Merge pull request 'master' (#303) from master into Docker
Reviewed-on: SGD-Nord/konova#303
2023-02-23 10:24:38 +01:00
mpeltriaux c0e8c6bd84 Merge pull request 'master' (#298) from master into Docker
Reviewed-on: SGD-Nord/konova#298
2023-02-21 08:07:47 +01:00
mpeltriaux 64541b76c5 Merge pull request 'master' (#295) from master into Docker
Reviewed-on: SGD-Nord/konova#295
2023-02-13 14:42:17 +01:00
mpeltriaux f65b9262cb Merge pull request 'master' (#292) from master into Docker
Reviewed-on: SGD-Nord/konova#292
2023-02-06 15:01:50 +01:00
mpeltriaux 2765d0548e Merge pull request 'Quality Check Command enhancement' (#288) from master into Docker
Reviewed-on: SGD-Nord/konova#288
2023-02-01 14:17:21 +01:00
mpeltriaux 951f810ce5 Merge pull request 'master' (#287) from master into Docker
Reviewed-on: SGD-Nord/konova#287
2023-02-01 14:10:04 +01:00
mpeltriaux d2c177d448 Merge pull request 'master' (#283) from master into Docker
Reviewed-on: SGD-Nord/konova#283
2022-12-22 07:56:02 +01:00
mpeltriaux 299727a7b4 Merge pull request 'master' (#279) from master into Docker
Reviewed-on: SGD-Nord/konova#279
2022-12-14 16:37:41 +01:00
mpeltriaux b97976b2c5 Merge pull request 'master' (#276) from master into Docker
Reviewed-on: SGD-Nord/konova#276
2022-12-13 06:50:43 +01:00
mpeltriaux 20241661ff Merge pull request 'master' (#273) from master into Docker
Reviewed-on: SGD-Nord/konova#273
2022-12-09 13:02:46 +01:00
mpeltriaux ad5c0bea67 Merge pull request 'master' (#270) from master into Docker
Reviewed-on: SGD-Nord/konova#270
2022-12-09 07:25:30 +01:00
mpeltriaux 80a44277bc Merge pull request 'Hotfix: Resubmission mail' (#265) from master into Docker
Reviewed-on: SGD-Nord/konova#265
2022-12-05 06:55:53 +01:00
mpeltriaux 5c2b5affc9 Merge pull request 'master' (#264) from master into Docker
Reviewed-on: SGD-Nord/konova#264
2022-12-05 06:10:26 +01:00
mpeltriaux cd99743d1e Merge pull request 'master' (#261) from master into Docker
Reviewed-on: SGD-Nord/konova#261
2022-12-02 06:43:28 +01:00
mpeltriaux b39432be1a Merge pull request 'master' (#259) from master into Docker
Reviewed-on: SGD-Nord/konova#259
2022-12-01 14:01:40 +01:00
mpeltriaux 03f9a33e54 Merge pull request 'Hotfix' (#256) from master into Docker
Reviewed-on: SGD-Nord/konova#256
2022-12-01 07:05:50 +01:00
mpeltriaux 699a9c1e76 Merge pull request 'Revert "File number public reports"' (#254) from master into Docker
Reviewed-on: SGD-Nord/konova#254
2022-11-28 13:52:34 +01:00
mpeltriaux 4dfd02291e Merge pull request 'master' (#253) from master into Docker
Reviewed-on: SGD-Nord/konova#253
2022-11-28 07:29:36 +01:00
mpeltriaux e7ca485a88 Merge pull request 'master' (#247) from master into Docker
Reviewed-on: SGD-Nord/konova#247
2022-11-23 16:07:21 +01:00
mpeltriaux 8319cbfe17 Merge pull request 'master' (#245) from master into Docker
Reviewed-on: SGD-Nord/konova#245
2022-11-23 07:14:15 +01:00
mpeltriaux 4a023e9f10 Merge pull request 'Hotfix' (#242) from master into Docker
Reviewed-on: SGD-Nord/konova#242
2022-11-18 16:22:50 +01:00
mpeltriaux 4100f96dc6 Merge pull request 'master' (#241) from master into Docker
Reviewed-on: SGD-Nord/konova#241
2022-11-18 16:17:39 +01:00
mpeltriaux ca24f098e4 Merge pull request 'master' (#236) from master into Docker
Reviewed-on: SGD-Nord/konova#236
2022-11-18 06:53:27 +01:00
mpeltriaux 80dcd62199 Merge pull request 'master' (#234) from master into Docker
Reviewed-on: SGD-Nord/konova#234
2022-11-17 06:55:28 +01:00
mpeltriaux 0cfd3da728 Merge pull request 'master' (#227) from master into Docker
Reviewed-on: SGD-Nord/konova#227
2022-11-14 07:23:43 +01:00
mpeltriaux e141851a87 Merge pull request 'master' (#224) from master into Docker
Reviewed-on: SGD-Nord/konova#224
2022-10-19 07:35:31 +02:00
mpeltriaux 89ec67999b Merge pull request 'master' (#221) from master into Docker
Reviewed-on: SGD-Nord/konova#221
2022-10-12 09:02:49 +02:00
mpeltriaux ec38daaedc Merge pull request 'master' (#219) from master into Docker
Reviewed-on: SGD-Nord/konova#219
2022-10-11 16:41:06 +02:00
mpeltriaux 45c0826a84 Merge pull request 'master' (#215) from master into Docker
Reviewed-on: SGD-Nord/konova#215
2022-10-05 11:03:03 +02:00
mpeltriaux 45a383cf85 Merge pull request 'master' (#213) from master into Docker
Reviewed-on: SGD-Nord/konova#213
2022-09-29 10:46:30 +02:00
mpeltriaux 90aff209f9 Merge pull request 'master' (#210) from master into Docker
Reviewed-on: SGD-Nord/konova#210
2022-09-28 12:28:49 +02:00
mpeltriaux 13528e91e9 Merge pull request 'master' (#207) from master into Docker
Reviewed-on: SGD-Nord/konova#207
2022-09-16 12:13:59 +02:00
mpeltriaux 04179d633c Merge pull request 'master' (#205) from master into Docker
Reviewed-on: SGD-Nord/konova#205
2022-09-16 07:24:21 +02:00
mpeltriaux 0a241305d3 Merge pull request 'Docker Update' (#199) from master into Docker
Reviewed-on: SGD-Nord/konova#199
2022-08-15 11:23:09 +02:00
mpeltriaux 31565a0bc4 Merge pull request 'Docker_tmp' (#188) from Docker_tmp into Docker
Reviewed-on: SGD-Nord/konova#188
2022-08-02 09:54:31 +02:00
mpeltriaux af747417d3 Revert "Revert "Merge branch 'Docker' into master""
This reverts commit 1c38acea25.
2022-08-02 09:44:25 +02:00
mpeltriaux c6606c4151 Merge pull request 'master' (#187) from master into Docker_tmp
Reviewed-on: SGD-Nord/konova#187
2022-08-02 09:43:04 +02:00
12 changed files with 737 additions and 8237 deletions

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
# Nutze ein schlankes Python-Image
FROM python:3.11-slim-bullseye
ENV PYTHONUNBUFFERED 1
WORKDIR /konova
# Installiere System-Abhängigkeiten
RUN apt-get update && apt-get install -y --no-install-recommends \
gdal-bin redis-server nginx \
&& rm -rf /var/lib/apt/lists/* # Platz sparen
# Erstelle benötigte Verzeichnisse & setze Berechtigungen
RUN mkdir -p /var/log/nginx /var/log/gunicorn /var/lib/nginx /tmp/nginx_client_body \
&& touch /var/log/nginx/access.log /var/log/nginx/error.log \
&& chown -R root:root /var/log/nginx /var/lib/nginx /tmp/nginx_client_body
# Kopiere und installiere Python-Abhängigkeiten
COPY ./requirements.txt /konova/
RUN pip install --upgrade pip && pip install --no-cache-dir -r requirements.txt
# Entferne Standard-Nginx-Site und ersetze sie durch eigene Config
RUN rm -rf /etc/nginx/sites-enabled/default
COPY ./nginx.conf /etc/nginx/conf.d
# Kopiere restliche Projektdateien
COPY . /konova/
# Sammle statische Dateien
RUN python manage.py collectstatic --noinput
# Exponiere Ports
#EXPOSE 80 6379 8000
# Setze Entrypoint
ENTRYPOINT ["/konova/docker-entrypoint.sh"]
+56
View File
@@ -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;
}
}
```
+23
View File
@@ -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
+27
View File
@@ -0,0 +1,27 @@
#!/bin/bash
set -e # Beende Skript bei Fehlern
set -o pipefail # Fehler in Pipelines nicht ignorieren
# Starte Redis
redis-server --daemonize yes
# Starte Celery Worker im Hintergrund
celery -A konova worker --loglevel=info &
# Starte Nginx als Hintergrundprozess
nginx -g "daemon off;" &
# Setze Gunicorn Worker-Anzahl (Standard: (2*CPUs)+1)
WORKERS=${GUNICORN_WORKERS:-$((2 * $(nproc) + 1))}
# Stelle sicher, dass Logs existieren
mkdir -p /var/log/gunicorn
touch /var/log/gunicorn/access.log /var/log/gunicorn/error.log
# Starte Gunicorn als Hauptprozess
exec gunicorn --workers="$WORKERS" konova.wsgi:application \
--bind=0.0.0.0:8000 \
--access-logfile /var/log/gunicorn/access.log \
--error-logfile /var/log/gunicorn/error.log \
--access-logformat '%({x-real-ip}i)s via %(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"'
+13 -3
View File
@@ -10,6 +10,7 @@ import json
from django.contrib.gis.db.models import MultiPolygonField
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
from django.db import models, transaction
from django.db.models import Q
from django.utils import timezone
from django.contrib.gis.geos import MultiPolygon
@@ -109,17 +110,26 @@ class Geometry(BaseResource):
objs (list): The list of objects
"""
objs = []
sets = [
# Some related data sets can be processed rather easily
regular_sets = [
self.intervention_set,
self.compensation_set,
self.ema_set,
self.ecoaccount_set,
]
for _set in sets:
for _set in regular_sets:
set_objs = _set.filter(
deleted=None
)
objs += set_objs
# ... but we need a special treatment for compensations, since they can be deleted directly OR inherit their
# de-facto-deleted status from their deleted parent intervention
comp_objs = self.compensation_set.filter(
Q(deleted=None) & Q(intervention__deleted=None)
)
objs += comp_objs
return objs
def get_data_object(self):
+2 -2
View File
@@ -677,12 +677,12 @@ class GeoReferencedMixin(models.Model):
return request
instance_objs = []
conflicts = self.geometry.conflicts_geometries.all()
conflicts = self.geometry.conflicts_geometries.iterator()
for conflict in conflicts:
instance_objs += conflict.affected_geometry.get_data_objects()
conflicts = self.geometry.conflicted_by_geometries.all()
conflicts = self.geometry.conflicted_by_geometries.iterator()
for conflict in conflicts:
instance_objs += conflict.conflicting_geometry.get_data_objects()
+2 -3
View File
@@ -191,11 +191,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
+25
View File
@@ -0,0 +1,25 @@
server {
listen 80;
client_max_body_size 25M;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_redirect off;
proxy_cache_bypass $http_upgrade;
}
location /static/ {
alias /konova/static/;
access_log /var/log/nginx/access.log;
autoindex off;
types {
text/css css;
application/javascript js;
}
}
error_log /var/log/nginx/error.log;
}
+1 -1
View File
@@ -48,7 +48,7 @@ pytz==2024.2
PyYAML==6.0.2
qrcode==7.3.1
redis==5.1.0b6
requests==2.32.3
requests<2.32.0
six==1.16.0
soupsieve==2.5
sqlparse==0.5.1
+1
View File
@@ -188,6 +188,7 @@
{
"title": "Ebene hinzufügen",
"preview": true,
"editable": true,
"wms_options": [ "https://sgx.geodatenzentrum.de/wms_topplus_open" ],
"wfs_options": [ "http://213.139.159.34:80/geoserver/uesg/wfs" ],
"wfs_proxy": "/client/proxy?",
+1 -1
View File
@@ -1 +1 @@
.netgis-attribution{position:absolute;right:0;bottom:0;padding:1mm;background:rgba(255,255,255,0.5);font-size:2.5mm;z-index:100}.netgis-client{position:relative;box-sizing:border-box;font-size:4mm;overflow:hidden}.netgis-client *{box-sizing:border-box}.netgis-client button{font-size:inherit}.netgis-contextmenu{position:absolute;width:64mm;z-index:90000}.netgis-contextmenu>*{display:block;position:relative;width:100%;height:12mm;line-height:12mm;padding:0 4mm;text-align:left;background:none}.netgis-contextmenu>label span{position:absolute;left:0;right:50%;height:100%;padding:0 4mm}.netgis-contextmenu>label span:last-of-type{left:50%;right:0;padding:2mm;padding-left:0;padding-right:4mm}.netgis-contextmenu>label span:only-of-type{left:12mm;right:0;padding:0 4mm;padding-left:0;cursor:pointer}.netgis-contextmenu>label input[type=range]{width:100%;cursor:pointer}.netgis-controls{position:absolute;width:12mm;right:4mm;bottom:8mm;overflow:hidden;z-index:100}.netgis-client.netgis-footer>.netgis-controls{bottom:44mm}.netgis-controls button{font-size:5mm!important;color:inherit;width:100%;height:12mm;padding:0!important;border:none;background-color:inherit;cursor:pointer}.netgis-dropdown{display:inline-block;position:relative;padding:0!important}.netgis-dropdown>:first-child{height:12mm;z-index:10;padding:0 4mm}.netgis-dropdown ul{display:none;position:absolute;min-width:100%;left:0;margin:0;padding:0;list-style-type:none}.netgis-dropdown li{position:relative;height:12mm}.netgis-dropdown li>button,.netgis-dropdown li>a{display:inline-block;width:100%;height:100%;text-align:left}.netgis-dropdown li>ul{display:none;top:0;left:100%;max-height:100mm;overflow-x:hidden;overflow-y:auto}.netgis-dropdown li>ul li{padding-right:5mm}.netgis-dropdown li:hover>ul{display:block}.netgis-dropdown li i:first-child{margin-right:4mm!important}.netgis-dropdown li i:last-child{margin-left:4mm!important;margin-right:0!important}.netgis-dropdown li>label{display:block;text-align:left}.netgis-dropdown li>label input{width:4mm;margin:0;margin-right:4mm}.netgis-compact .netgis-dropdown li{height:9mm;line-height:9mm}.netgis-compact .netgis-dropdown li button,.netgis-compact .netgis-dropdown li .netgis-button{padding:0 3mm}.netgis-compact .netgis-dropdown li i{margin-right:4mm}@media (max-width:599px){.netgis-dropdown.netgis-active>ul{display:block}}@media (min-width:600px){.netgis-dropdown:hover>ul{display:block}}.netgis-import .netgis-preview-map{position:absolute;width:100%;height:40mm;cursor:grab}.netgis-import .netgis-preview-map:active:hover{cursor:grabbing}.netgis-import .netgis-preview-tree{position:absolute;width:100%;top:52mm;bottom:12mm;overflow-y:auto}.netgis-import .netgis-import-submit{position:absolute;width:100%;height:12mm;bottom:0}.netgis-import .netgis-geoportal .netgis-search>label{display:block}.netgis-import .netgis-geoportal .netgis-search>label>button{top:9mm}.netgis-import .netgis-geoportal>.netgis-loader{left:0;top:0;background:rgba(255,255,255,0.66)}.netgis-import .netgis-geoportal>label>.netgis-loader{width:10mm;height:10mm;bottom:0;right:0;font-size:5mm}.netgis-import .netgis-geoportal>label>.netgis-loader i{top:2.75mm}.netgis-import .netgis-geoportal .netgis-tree{position:absolute;left:8mm;right:8mm;top:32mm;bottom:18mm;overflow:auto;padding-left:0;list-style-type:none}.netgis-import .netgis-geoportal .netgis-tree li{padding-left:0;list-style-type:none}.netgis-import .netgis-geoportal .netgis-tree label{padding-left:0;margin-bottom:0;font-weight:normal}.netgis-import .netgis-geoportal .netgis-tree .netgis-folder>details summary input{margin-left:3mm}.netgis-import .netgis-geoportal .netgis-tree .netgis-item input{margin-left:4mm}.netgis-import .netgis-geoportal>button:last-of-type{display:block;position:absolute;width:89%;right:8mm;bottom:8mm}@media (max-width:599px){.netgis-import .netgis-geoportal .netgis-tree{left:4mm;right:4mm;top:25mm}.netgis-import .netgis-geoportal button:last-of-type{width:auto;right:4mm;padding-right:8mm}}.netgis-legend{padding:3mm}.netgis-legend details{margin-bottom:2mm}.netgis-legend summary{display:block;height:12mm;line-height:12mm;font-weight:bold}.netgis-legend details>div{padding:2mm}.netgis-legend details>div img{max-width:100%}.netgis-map{position:absolute;left:0;right:0;top:12mm;bottom:0;cursor:grab}.netgis-map:active:hover{cursor:grabbing!important}.netgis-map-overlay{width:1px;height:1px;background:none}.netgis-map.netgis-clickable{cursor:pointer}.netgis-map.netgis-mode-zoom-box,.netgis-map.netgis-mode-zoom-box:active:hover,.netgis-map.netgis-mode-measure-line,.netgis-map.netgis-mode-measure-area{cursor:crosshair}.netgis-map.netgis-mode-measure-line:active:hover,.netgis-map.netgis-mode-measure-area:active:hover{cursor:grabbing}.netgis-map.netgis-mode-draw-points,.netgis-map.netgis-mode-draw-lines,.netgis-map.netgis-mode-draw-polygons,.netgis-map.netgis-mode-cut-features-draw{cursor:crosshair}.netgis-map.netgis-mode-draw-points.netgis-not-allowed,.netgis-map.netgis-mode-draw-liLine truncated
.netgis-attribution{position:absolute;right:0;bottom:0;padding:1mm;background:rgba(255,255,255,0.5);font-size:2.5mm;z-index:100}.netgis-client{position:relative;box-sizing:border-box;font-size:4mm;overflow:hidden}.netgis-client *{box-sizing:border-box}.netgis-client button{font-size:inherit}.netgis-contextmenu{position:absolute;width:64mm;z-index:90000}.netgis-contextmenu>*{display:block;position:relative;width:100%;height:12mm;line-height:12mm;padding:0 4mm;text-align:left;background:none}.netgis-contextmenu>label span{position:absolute;left:0;right:50%;height:100%;padding:0 4mm}.netgis-contextmenu>label span:last-of-type{left:50%;right:0;padding:2mm;padding-left:0;padding-right:4mm}.netgis-contextmenu>label span:only-of-type{left:12mm;right:0;padding:0 4mm;padding-left:0;cursor:pointer}.netgis-contextmenu>label input[type=range]{width:100%;cursor:pointer}.netgis-controls{position:absolute;width:12mm;right:4mm;bottom:8mm;overflow:hidden;z-index:100}.netgis-client.netgis-footer>.netgis-controls{bottom:44mm}.netgis-controls button{font-size:5mm!important;color:inherit;width:100%;height:12mm;padding:0!important;border:none;background-color:inherit;cursor:pointer}.netgis-dropdown{display:inline-block;position:relative;padding:0!important}.netgis-dropdown>:first-child{height:12mm;z-index:10;padding:0 4mm}.netgis-dropdown ul{display:none;position:absolute;min-width:100%;left:0;margin:0;padding:0;list-style-type:none}.netgis-dropdown li{position:relative;height:12mm}.netgis-dropdown li>button,.netgis-dropdown li>a{display:inline-block;width:100%;height:100%;text-align:left}.netgis-dropdown li>ul{display:none;top:0;left:100%;max-height:100mm;overflow-x:hidden;overflow-y:auto}.netgis-dropdown li>ul li{padding-right:5mm}.netgis-dropdown li:hover>ul{display:block}.netgis-dropdown li i:first-child{margin-right:4mm!important}.netgis-dropdown li i:last-child{margin-left:4mm!important;margin-right:0!important}.netgis-dropdown li>label{display:block;text-align:left}.netgis-dropdown li>label input{width:4mm;margin:0;margin-right:4mm}.netgis-compact .netgis-dropdown li{height:9mm;line-height:9mm}.netgis-compact .netgis-dropdown li button,.netgis-compact .netgis-dropdown li .netgis-button{padding:0 3mm}.netgis-compact .netgis-dropdown li i{margin-right:4mm}@media (max-width:599px){.netgis-dropdown.netgis-active>ul{display:block}}@media (min-width:600px){.netgis-dropdown:hover>ul{display:block}}.netgis-import .netgis-preview-map{position:absolute;width:100%;height:40mm;cursor:grab}.netgis-import .netgis-preview-map:active:hover{cursor:grabbing}.netgis-import .netgis-preview-tree{position:absolute;width:100%;top:52mm;bottom:12mm;overflow-y:auto}.netgis-import .netgis-import-submit{position:absolute;width:100%;height:12mm;bottom:0}.netgis-import .netgis-geoportal .netgis-search>label{display:block;position:absolute;width:auto;left:0;right:30mm}.netgis-import .netgis-geoportal .netgis-search>label>button{top:9mm}.netgis-import .netgis-geoportal .netgis-search>label>button:last-of-type{width:26mm;right:-30mm;padding:0}.netgis-import .netgis-geoportal>.netgis-loader{left:0;top:0;background:rgba(255,255,255,0.66)}.netgis-import .netgis-geoportal>label>.netgis-loader{width:10mm;height:10mm;bottom:0;right:0;font-size:5mm}.netgis-import .netgis-geoportal>label>.netgis-loader i{top:2.75mm}.netgis-import .netgis-geoportal .netgis-tree{position:absolute;left:8mm;right:8mm;top:32mm;bottom:18mm;overflow:auto;padding-left:0;list-style-type:none}.netgis-import .netgis-geoportal .netgis-tree li{padding-left:0;list-style-type:none}.netgis-import .netgis-geoportal .netgis-tree label{margin-bottom:0;font-weight:normal}.netgis-import .netgis-geoportal .netgis-tree .netgis-folder>details summary input{margin-left:3mm}.netgis-import .netgis-geoportal .netgis-tree .netgis-item input{margin-left:4mm}.netgis-import .netgis-geoportal>button:last-of-type{display:block;position:absolute;width:89%;right:8mm;bottom:8mm}@media (max-width:599px){.netgis-import .netgis-geoportal .netgis-tree{left:4mm;right:4mm;top:25mm}.netgis-import .netgis-geoportal button:last-of-type{width:auto;right:4mm;padding-right:8mm}}.netgis-legend{padding:3mm}.netgis-legend details{margin-bottom:2mm}.netgis-legend summary{display:block;height:12mm;line-height:12mm;font-weight:bold}.netgis-legend details>div{padding:2mm}.netgis-legend details>div img{max-width:100%}.netgis-map{position:absolute;left:0;right:0;top:12mm;bottom:0;cursor:grab}.netgis-map:active:hover{cursor:grabbing!important}.netgis-map-overlay{width:1px;height:1px;background:none}.netgis-map.netgis-clickable{cursor:pointer}.netgis-map.netgis-mode-zoom-box,.netgis-map.netgis-mode-zoom-box:active:hover,.netgis-map.netgis-mode-measure-line,.netgis-map.netgis-mode-measure-area{cursor:crosshair}.netgis-map.netgis-mode-measure-line:active:hover,.netgis-map.netgis-mode-measure-area:active:hover{cursor:grabbing}.netgis-map.netgis-mode-draw-points,.netgis-map.netgis-mode-draw-lines,.netgis-map.netgis-mode-draw-polygons,.netgiLine truncated
+550 -8227
View File
File diff suppressed because it is too large. Load diff