Revert accidental docker->master merge
This commit is contained in:
parent
746daf14f6
commit
49aba49406
20
Dockerfile
20
Dockerfile
@ -1,20 +0,0 @@
|
|||||||
FROM python:3.7-slim
|
|
||||||
ENV PYTHONUNBUFFERED 1
|
|
||||||
|
|
||||||
WORKDIR /konova
|
|
||||||
|
|
||||||
# Install some dependencies
|
|
||||||
RUN apt update
|
|
||||||
RUN apt install -y gdal-bin
|
|
||||||
|
|
||||||
# Copy requirements file into workspace
|
|
||||||
COPY ./requirements.txt /konova/
|
|
||||||
RUN pip install --upgrade pip
|
|
||||||
RUN pip install -r requirements.txt
|
|
||||||
|
|
||||||
# Copy rest of project into workspace
|
|
||||||
COPY . /konova/
|
|
||||||
|
|
||||||
# Move static files in designated folder
|
|
||||||
RUN python manage.py collectstatic --noinput
|
|
||||||
|
|
56
README.md
56
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.
|
fontawesome for a modern look, following best practices from the industry.
|
||||||
|
|
||||||
## Background processes
|
## Background processes
|
||||||
### !!! For non-docker run
|
|
||||||
Konova uses celery for background processing. To start the worker you need to run
|
Konova uses celery for background processing. To start the worker you need to run
|
||||||
```shell
|
```shell
|
||||||
$ celery -A konova worker -l INFO
|
$ 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).
|
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
@ -1,83 +0,0 @@
|
|||||||
version: '3.3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
redis:
|
|
||||||
image: redis
|
|
||||||
container_name: "konova-redis-cache"
|
|
||||||
volumes:
|
|
||||||
- /redis/data:/bitnami/redis/data
|
|
||||||
environment:
|
|
||||||
- REDIS_PASSWORD=CHANGE_ME
|
|
||||||
|
|
||||||
konova:
|
|
||||||
external_links:
|
|
||||||
- postgis:db
|
|
||||||
- arnova-nginx-server:arnova
|
|
||||||
build: .
|
|
||||||
container_name: "konova-docker"
|
|
||||||
command: gunicorn konova.wsgi:application --bind 0.0.0.0:8000
|
|
||||||
volumes:
|
|
||||||
- .:/konova
|
|
||||||
- konova_uploaded_files:/konova_uploaded_files
|
|
||||||
- static_file_volume:/konova/static # Point to the volume for static files. Shared with nginx service
|
|
||||||
expose:
|
|
||||||
- 8000
|
|
||||||
depends_on:
|
|
||||||
- redis
|
|
||||||
environment:
|
|
||||||
- POSTGRES_NAME=konova
|
|
||||||
- POSTGRES_PORT=5432
|
|
||||||
- POSTGRES_PASSWORD=CHANGE_ME
|
|
||||||
- POSTGRES_USER=konova
|
|
||||||
- POSTGRES_HOST=db
|
|
||||||
- REDIS_HOST=redis
|
|
||||||
- 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
|
|
||||||
|
|
||||||
# To provide a celery worker instance, we need to add the celery worker as an own service
|
|
||||||
celery_worker:
|
|
||||||
external_links:
|
|
||||||
- postgis:db
|
|
||||||
- arnova-nginx-server:arnova
|
|
||||||
build: .
|
|
||||||
container_name: "konova-worker-docker"
|
|
||||||
command: celery -A konova worker -l INFO
|
|
||||||
volumes:
|
|
||||||
- .:/konova
|
|
||||||
- konova_uploaded_files:/konova_uploaded_files
|
|
||||||
depends_on:
|
|
||||||
- konova
|
|
||||||
environment:
|
|
||||||
- POSTGRES_NAME=konova
|
|
||||||
- POSTGRES_PORT=5432
|
|
||||||
- POSTGRES_PASSWORD=CHANGE_ME
|
|
||||||
- POSTGRES_USER=konova
|
|
||||||
- POSTGRES_HOST=db
|
|
||||||
- REDIS_HOST=redis
|
|
||||||
- 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
|
|
||||||
|
|
||||||
nginx:
|
|
||||||
build: ./nginx
|
|
||||||
container_name: "konova-nginx-server"
|
|
||||||
ports:
|
|
||||||
- "1337:80"
|
|
||||||
depends_on:
|
|
||||||
- konova
|
|
||||||
volumes:
|
|
||||||
- static_file_volume:/konova/static # Point to the volume for static files. Shared with konova service
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
static_file_volume:
|
|
||||||
konova_uploaded_files:
|
|
@ -17,7 +17,7 @@ app.config_from_object('django.conf:settings', namespace='CELERY')
|
|||||||
app.autodiscover_tasks()
|
app.autodiscover_tasks()
|
||||||
|
|
||||||
# Declare redis as broker
|
# 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)
|
@app.task(bind=True)
|
||||||
|
@ -124,11 +124,10 @@ WSGI_APPLICATION = 'konova.wsgi.application'
|
|||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'django.contrib.gis.db.backends.postgis',
|
'ENGINE': 'django.contrib.gis.db.backends.postgis',
|
||||||
'NAME': os.environ.get('POSTGRES_NAME'),
|
'NAME': 'konova',
|
||||||
'USER': os.environ.get('POSTGRES_USER'),
|
'USER': 'postgres',
|
||||||
'HOST': os.environ.get('POSTGRES_HOST'),
|
'HOST': '127.0.0.1',
|
||||||
'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),
|
'PORT': '5432',
|
||||||
'PORT': os.environ.get('POSTGRES_PORT'),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,14 +209,19 @@ DEBUG_TOOLBAR_CONFIG = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# EMAIL (see https://docs.djangoproject.com/en/dev/topics/email/)
|
# EMAIL (see https://docs.djangoproject.com/en/dev/topics/email/)
|
||||||
if DEBUG:
|
|
||||||
# ONLY FOR DEVELOPMENT NEEDED
|
|
||||||
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
|
|
||||||
EMAIL_FILE_PATH = '/tmp/app-messages'
|
|
||||||
|
|
||||||
DEFAULT_FROM_EMAIL = "no-reply@ksp.de" # The default email address for the 'from' element
|
# CHANGE_ME !!! ONLY FOR DEVELOPMENT !!!
|
||||||
|
if DEBUG:
|
||||||
|
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
|
||||||
|
EMAIL_FILE_PATH = '/tmp/app-messages' # change this to a proper location
|
||||||
|
|
||||||
|
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
|
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_HOST = "localhost"
|
||||||
EMAIL_REPLY_TO = os.environ.get('SMTP_REAL_REPLY_MAIL')
|
EMAIL_REPLY_TO = "ksp-servicestelle@sgdnord.rlp.de"
|
||||||
SUPPORT_MAIL_RECIPIENT = EMAIL_REPLY_TO
|
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
|
||||||
|
@ -7,9 +7,7 @@ Created on: 31.01.22
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# SSO settings
|
# SSO settings
|
||||||
import os
|
SSO_SERVER_BASE = "http://127.0.0.1:8000/"
|
||||||
|
|
||||||
SSO_SERVER_BASE = f"http://{os.environ.get('SSO_HOST')}/"
|
|
||||||
SSO_SERVER = f"{SSO_SERVER_BASE}sso/"
|
SSO_SERVER = f"{SSO_SERVER_BASE}sso/"
|
||||||
SSO_PRIVATE_KEY = "QuziFeih7U8DZvQQ1riPv2MXz0ZABupHED9wjoqZAqeMQaqkqTfxJDRXgSIyASwJ"
|
SSO_PRIVATE_KEY = "QuziFeih7U8DZvQQ1riPv2MXz0ZABupHED9wjoqZAqeMQaqkqTfxJDRXgSIyASwJ"
|
||||||
SSO_PUBLIC_KEY = "AGGK7E8eT5X5u2GD38ygGG3GpAefmIldJiiWW7gldRPqCG1CzmUfGdvPSGDbEY2n"
|
SSO_PUBLIC_KEY = "AGGK7E8eT5X5u2GD38ygGG3GpAefmIldJiiWW7gldRPqCG1CzmUfGdvPSGDbEY2n"
|
@ -1,4 +0,0 @@
|
|||||||
FROM nginx:alpine
|
|
||||||
|
|
||||||
RUN rm /etc/nginx/conf.d/default.conf
|
|
||||||
COPY nginx.conf /etc/nginx/conf.d
|
|
@ -1,20 +0,0 @@
|
|||||||
upstream konova {
|
|
||||||
server konova: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/;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -48,4 +48,3 @@ webservices==0.7
|
|||||||
wrapt==1.13.3
|
wrapt==1.13.3
|
||||||
xmltodict==0.12.0
|
xmltodict==0.12.0
|
||||||
zipp==3.4.1
|
zipp==3.4.1
|
||||||
gunicorn==20.1.0
|
|
Loading…
Reference in New Issue
Block a user