From a955e9f564df34af3c1811ae9ca3748d31a1a653 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Wed, 13 Jul 2022 11:21:51 +0200 Subject: [PATCH] Revert "Merge branch 'Docker' into master" This reverts commit 8c47c8ae3505e624bb6c9ec8aafa32fd6bf71fb0, reversing changes made to 2206565673471e7c198b37083990f4e537d90948. Undos accidental remote merge --- Dockerfile | 24 ----------- README.md | 56 -------------------------- docker-compose.yml | 34 ---------------- docker-entrypoint.sh | 7 ---- konova/celery.py | 2 +- konova/sub_settings/django_settings.py | 26 +++++++----- konova/sub_settings/sso_settings.py | 6 +-- nginx.conf | 20 --------- requirements.txt | 3 +- 9 files changed, 19 insertions(+), 159 deletions(-) delete mode 100644 Dockerfile delete mode 100644 docker-compose.yml delete mode 100755 docker-entrypoint.sh delete mode 100644 nginx.conf diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 6e35526..0000000 --- a/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM python:3.9-slim -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 - -# Copy rest of project into workspace -COPY . /konova/ - -# Move static files in designated folder -RUN python manage.py collectstatic --noinput - diff --git a/README.md b/README.md index 8fee921..4497147 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ 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 @@ -19,58 +18,3 @@ 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; - } -} -``` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index c7bd3f4..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: '3.3' - -services: - konova: - external_links: - - postgis:db - - arnova-nginx-server:arnova - build: . - container_name: "konova-docker" - command: ./docker-entrypoint.sh - restart: always - volumes: - - .:/konova - - /data/apps/konova/uploaded_files:/konova_uploaded_files - ports: - - "1337:80" - environment: - - POSTGRES_NAME=konova - - POSTGRES_PORT=5432 - - POSTGRES_PASSWORD=CHANGE_ME - - POSTGRES_USER=konova - - POSTGRES_HOST=db - - REDIS_HOST=localhost - - SSO_HOST=CHANGE_ME_TO_SSO_HOST_URL - - SMTP_HOST=172.17.0.1 - - SMTP_PORT=25 - - SMTP_REAL_REPLY_MAIL=ksp-servicestelle@sgdnord.rlp.de - -# 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 diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh deleted file mode 100755 index e9f2cea..0000000 --- a/docker-entrypoint.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/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 \ No newline at end of file diff --git a/konova/celery.py b/konova/celery.py index ab06cf7..478f284 100644 --- a/konova/celery.py +++ b/konova/celery.py @@ -17,7 +17,7 @@ app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks() # Declare redis as broker -app.conf.broker_url = f"redis://{os.environ.get('REDIS_HOST')}:6379/0" +app.conf.broker_url = 'redis://localhost:6379/0' @app.task(bind=True) diff --git a/konova/sub_settings/django_settings.py b/konova/sub_settings/django_settings.py index 54c35be..746df28 100644 --- a/konova/sub_settings/django_settings.py +++ b/konova/sub_settings/django_settings.py @@ -125,11 +125,10 @@ WSGI_APPLICATION = 'konova.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.contrib.gis.db.backends.postgis', - 'NAME': os.environ.get('POSTGRES_NAME'), - 'USER': os.environ.get('POSTGRES_USER'), - 'HOST': os.environ.get('POSTGRES_HOST'), - 'PASSWORD': os.environ.get('POSTGRES_PASSWORD'), - 'PORT': os.environ.get('POSTGRES_PORT'), + 'NAME': 'konova', + 'USER': 'postgres', + 'HOST': '127.0.0.1', + 'PORT': '5432', } } @@ -219,14 +218,19 @@ DEBUG_TOOLBAR_CONFIG = { } # 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' + EMAIL_FILE_PATH = '/tmp/app-messages' # change this to a proper location -DEFAULT_FROM_EMAIL = "no-reply@ksp.de" # The default email address for the 'from' element +DEFAULT_FROM_EMAIL = "service@ksp.de" # 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 -EMAIL_HOST = os.environ.get('SMTP_HOST') -EMAIL_REPLY_TO = os.environ.get('SMTP_REAL_REPLY_MAIL') +EMAIL_HOST = "localhost" +EMAIL_REPLY_TO = "ksp-servicestelle@sgdnord.rlp.de" SUPPORT_MAIL_RECIPIENT = EMAIL_REPLY_TO -EMAIL_PORT = os.environ.get('SMTP_PORT') +EMAIL_PORT = "25" +#EMAIL_HOST_USER = "" +#EMAIL_HOST_PASSWORD = "" +EMAIL_USE_TLS = False +EMAIL_USE_SSL = False diff --git a/konova/sub_settings/sso_settings.py b/konova/sub_settings/sso_settings.py index 390ed40..20417f0 100644 --- a/konova/sub_settings/sso_settings.py +++ b/konova/sub_settings/sso_settings.py @@ -7,9 +7,7 @@ Created on: 31.01.22 """ # SSO settings -import os - -SSO_SERVER_BASE = f"http://{os.environ.get('SSO_HOST')}/" +SSO_SERVER_BASE = "http://127.0.0.1:8000/" SSO_SERVER = f"{SSO_SERVER_BASE}sso/" SSO_PRIVATE_KEY = "QuziFeih7U8DZvQQ1riPv2MXz0ZABupHED9wjoqZAqeMQaqkqTfxJDRXgSIyASwJ" -SSO_PUBLIC_KEY = "AGGK7E8eT5X5u2GD38ygGG3GpAefmIldJiiWW7gldRPqCG1CzmUfGdvPSGDbEY2n" +SSO_PUBLIC_KEY = "AGGK7E8eT5X5u2GD38ygGG3GpAefmIldJiiWW7gldRPqCG1CzmUfGdvPSGDbEY2n" \ No newline at end of file diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index 373393a..0000000 --- a/nginx.conf +++ /dev/null @@ -1,20 +0,0 @@ -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/; - } - -} diff --git a/requirements.txt b/requirements.txt index 15a8d17..79a479e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -48,5 +48,4 @@ wcwidth==0.2.5 webservices==0.7 wrapt==1.13.3 xmltodict==0.12.0 -zipp==3.4.1 -gunicorn==20.1.0 \ No newline at end of file +zipp==3.4.1 \ No newline at end of file