WIP: all-inclusive setup
#172
Draft
christian.merten
wants to merge 2 commits from all-inclusive into main
@ -0,0 +1,26 @@
|
|||||||
|
[django]
|
||||||
|
deployed = true
|
||||||
|
debug = true
|
||||||
|
secret_key = 'secret'
|
||||||
|
allowed_hosts = ['*']
|
||||||
|
protocol = 'http'
|
||||||
|
base_url = 'localhost:8000'
|
||||||
|
media_root = '/var/www/jdav_web/media'
|
||||||
|
static_root = '/var/www/jdav_web/static'
|
||||||
|
broker_url = 'redis://redis:6379/0'
|
||||||
|
memcached_url = 'cache:11211'
|
||||||
|
default_static_path = '/var/www/jdav_web/static'
|
||||||
|
|
||||||
|
[database]
|
||||||
|
host = 'db'
|
||||||
|
port = 3306
|
||||||
|
database = 'kompass'
|
||||||
|
user = 'kompass'
|
||||||
|
password = 'secret'
|
||||||
|
|
||||||
|
[mail]
|
||||||
|
host = 'mailserver'
|
||||||
|
user = 'info@jdav-town.de'
|
||||||
|
password = 'secret'
|
||||||
|
default_sending_address = 'info@jdav-town.de'
|
||||||
|
default_sending_name = 'JDAV Tuetown'
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
FROM mariadb
|
||||||
|
|
||||||
|
COPY create_users.sql /docker-entrypoint-initdb.d/create_users.sql
|
||||||
|
COPY replace_placeholders.sh /replace_placeholders.sh
|
||||||
|
|
||||||
|
ARG KOMPASS_DB_HOST
|
||||||
|
ARG KOMPASS_DB_PASSWORD
|
||||||
|
ARG KOMPASS_DB_PAM_PASSWORD
|
||||||
|
ARG KOMPASS_DB_QUERYMAIL_PASSWORD
|
||||||
|
|
||||||
|
RUN chmod +x /replace_placeholders.sh && /replace_placeholders.sh
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
CREATE DATABASE kompass;
|
||||||
|
|
||||||
|
-- main kompass user
|
||||||
|
CREATE USER 'kompass'@'KOMPASS_DB_HOST' IDENTIFIED BY 'KOMPASS_DB_PASSWORD';
|
||||||
|
GRANT ALL PRIVILEGES ON kompass.* TO 'kompass'@'KOMPASS_DB_HOST';
|
||||||
|
|
||||||
|
-- pam user
|
||||||
|
CREATE USER 'pam'@'KOMPASS_DB_HOST' IDENTIFIED BY 'KOMPASS_DB_PAM_PASSWORD';
|
||||||
|
GRANT SELECT ON kompass.* TO 'pam'@'KOMPASS_DB_HOST';
|
||||||
|
|
||||||
|
-- TODO: allow for this more granular permission configuration
|
||||||
|
-- GRANT SELECT ON kompass.auth_user TO 'pam'@'KOMPASS_DB_HOST';
|
||||||
|
-- GRANT SELECT ON kompass.mailer_emailaddress TO 'pam'@'KOMPASS_DB_HOST';
|
||||||
|
|
||||||
|
-- querymail user
|
||||||
|
CREATE USER 'querymail'@'KOMPASS_DB_HOST' IDENTIFIED BY 'KOMPASS_DB_QUERYMAIL_PASSWORD';
|
||||||
|
GRANT SELECT on kompass.* TO 'querymail'@'KOMPASS_DB_HOST';
|
||||||
|
|
||||||
|
-- TODO: allow for this more granular permission configuration
|
||||||
|
-- GRANT SELECT (username, id) on kompass.auth_user TO 'querymail'@'KOMPASS_DB_HOST';
|
||||||
|
-- GRANT SELECT ON kompass.members_member_group TO 'querymail'@'KOMPASS_DB_HOST';
|
||||||
|
-- GRANT SELECT ON kompass.mailer_emailaddress_to_groups TO 'querymail'@'KOMPASS_DB_HOST';
|
||||||
|
-- GRANT SELECT ON kompass.members_member TO 'querymail'@'KOMPASS_DB_HOST';
|
||||||
|
-- GRANT SELECT ON kompass.mailer_emailaddress_to_groups TO 'querymail'@'KOMPASS_DB_HOST';
|
||||||
|
-- GRANT SELECT ON kompass.mailer_emailaddress_to_members TO 'querymail'@'KOMPASS_DB_HOST';
|
||||||
|
-- GRANT SELECT ON kompass.mailer_emailaddress TO 'querymail'@'KOMPASS_DB_HOST';
|
||||||
|
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Check if the required variables are set
|
||||||
|
if [ -z "${KOMPASS_DB_HOST}" ]; then
|
||||||
|
echo "Error: KOMPASS_DB_HOST is not set. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Replace placeholders with environment variables in the SQL file
|
||||||
|
if [ -f /docker-entrypoint-initdb.d/create_users.sql ]; then
|
||||||
|
sed -i "s/KOMPASS_DB_PASSWORD/${KOMPASS_DB_PASSWORD}/g" /docker-entrypoint-initdb.d/create_users.sql
|
||||||
|
sed -i "s/KOMPASS_DB_PAM_PASSWORD/${KOMPASS_DB_PAM_PASSWORD}/g" /docker-entrypoint-initdb.d/create_users.sql
|
||||||
|
sed -i "s/KOMPASS_DB_QUERYMAIL_PASSWORD/${KOMPASS_DB_QUERYMAIL_PASSWORD}/g" /docker-entrypoint-initdb.d/create_users.sql
|
||||||
|
sed -i "s/KOMPASS_DB_HOST/${KOMPASS_DB_HOST}/g" /docker-entrypoint-initdb.d/create_users.sql
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Update create_users.sql."
|
||||||
@ -0,0 +1,135 @@
|
|||||||
|
x-kompass:
|
||||||
|
&kompass
|
||||||
|
image: kompass:production
|
||||||
|
environment:
|
||||||
|
- DJANGO_SETTINGS_MODULE=jdav_web.settings
|
||||||
|
- KOMPASS_CONFIG_DIR_PATH=/app/config/
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
- cache
|
||||||
|
- db
|
||||||
|
|
||||||
|
services:
|
||||||
|
mailserver:
|
||||||
|
env_file: docker.env
|
||||||
|
build:
|
||||||
|
context: git@git.jdav-hd.merten.dev:digitales/kompass-mailserver#master
|
||||||
|
dockerfile: master/Dockerfile
|
||||||
|
args:
|
||||||
|
DOMAIN:
|
||||||
|
INTERNAL_DOMAINS:
|
||||||
|
DOMAINS:
|
||||||
|
MAIL_SERVER_ADMIN:
|
||||||
|
KOMPASS_DB_NAME:
|
||||||
|
KOMPASS_DB_HOST:
|
||||||
|
KOMPASS_DB_PAM_USER:
|
||||||
|
KOMPASS_DB_PAM_PASSWORD:
|
||||||
|
KOMPASS_DB_QUERYMAIL_USER:
|
||||||
|
KOMPASS_DB_QUERYMAIL_PASSWORD:
|
||||||
|
ports:
|
||||||
|
- "25:25"
|
||||||
|
- "993:993"
|
||||||
|
- "587:587"
|
||||||
|
- "465:465"
|
||||||
|
volumes:
|
||||||
|
- ./mail/:/var/vmail/
|
||||||
|
- ./cert.pem:/etc/ssl/cert.pem
|
||||||
|
- ./key.pem:/etc/ssl/key.pem
|
||||||
|
extra_hosts:
|
||||||
|
- "host:10.26.43.1"
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
milter:
|
||||||
|
build:
|
||||||
|
context: git@git.jdav-hd.merten.dev:digitales/kompass-mailserver#master
|
||||||
|
dockerfile: opendkim/Dockerfile
|
||||||
|
volumes:
|
||||||
|
- ./keys/:/etc/opendkim/keys/
|
||||||
|
env_file: docker.env
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
master:
|
||||||
|
<<: *kompass
|
||||||
|
build:
|
||||||
|
context: git@git.jdav-hd.merten.dev:digitales/kompass#main
|
||||||
|
dockerfile: docker/production/Dockerfile
|
||||||
|
args:
|
||||||
|
DJANGO_SUPERUSER_PASSWORD:
|
||||||
|
DJANGO_SUPERUSER_USERNAME:
|
||||||
|
env_file: docker.env
|
||||||
|
entrypoint: /app/docker/production/entrypoint-master.sh
|
||||||
|
volumes:
|
||||||
|
- uwsgi_data:/tmp/uwsgi/
|
||||||
|
- web_static:/app/static/
|
||||||
|
- web_static:/var/www/jdav_web/static/
|
||||||
|
- ./media:/var/www/jdav_web/media/
|
||||||
|
- ./config:/app/config:ro
|
||||||
|
extra_hosts:
|
||||||
|
- "host:10.26.42.1"
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
build: git@git.jdav-hd.merten.dev:digitales/kompass#main:docker/production/nginx
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- uwsgi_data:/tmp/uwsgi/
|
||||||
|
- web_static:/var/www/jdav_web/static/:ro
|
||||||
|
- ./media:/var/www/jdav_web/media/:ro
|
||||||
|
ports:
|
||||||
|
- "3000:80"
|
||||||
|
depends_on:
|
||||||
|
- master
|
||||||
|
|
||||||
|
cache:
|
||||||
|
restart: always
|
||||||
|
image: memcached:alpine
|
||||||
|
|
||||||
|
redis:
|
||||||
|
restart: always
|
||||||
|
image: redis:6-alpine
|
||||||
|
|
||||||
|
celery_worker:
|
||||||
|
<<: *kompass
|
||||||
|
entrypoint: /app/docker/production/entrypoint-celery-worker.sh
|
||||||
|
volumes:
|
||||||
|
- ./config:/app/config:ro
|
||||||
|
extra_hosts:
|
||||||
|
- "host:10.26.42.1"
|
||||||
|
|
||||||
|
celery_beat:
|
||||||
|
<<: *kompass
|
||||||
|
entrypoint: /app/docker/production/entrypoint-celery-beat.sh
|
||||||
|
volumes:
|
||||||
|
- ./config:/app/config:ro
|
||||||
|
extra_hosts:
|
||||||
|
- "host:10.26.42.1"
|
||||||
|
|
||||||
|
db:
|
||||||
|
restart: always
|
||||||
|
build:
|
||||||
|
context: ./database/
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
args:
|
||||||
|
KOMPASS_DB_HOST:
|
||||||
|
KOMPASS_DB_PASSWORD:
|
||||||
|
KOMPASS_DB_PAM_PASSWORD:
|
||||||
|
KOMPASS_DB_QUERYMAIL_PASSWORD:
|
||||||
|
volumes:
|
||||||
|
- ./db:/var/lib/mysql
|
||||||
|
env_file: docker.env
|
||||||
|
# networks:
|
||||||
|
# main:
|
||||||
|
# # assign static ip address
|
||||||
|
# ipv4_address: 10.26.42.2
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
uwsgi_data:
|
||||||
|
web_static:
|
||||||
|
|
||||||
|
#networks:
|
||||||
|
# main:
|
||||||
|
# driver: bridge
|
||||||
|
# ipam:
|
||||||
|
# config:
|
||||||
|
# - subnet: 10.26.42.0/24
|
||||||
|
# gateway: 10.26.42.1
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
DOMAIN="jdav-town.de"
|
||||||
|
DOMAINS="jdav-town.de"
|
||||||
|
INTERNAL_DOMAINS="jdav-town.de alpenverein-town.de"
|
||||||
|
|
||||||
|
KOMPASS_DB_NAME="kompass"
|
||||||
|
KOMPASS_DB_HOST="%"
|
||||||
|
KOMPASS_DB_PASSWORD="secret"
|
||||||
|
KOMPASS_DB_PAM_USER="pam"
|
||||||
|
KOMPASS_DB_PAM_PASSWORD="secret"
|
||||||
|
KOMPASS_DB_QUERYMAIL_USER="querymail"
|
||||||
|
KOMPASS_DB_QUERYMAIL_PASSWORD="secret"
|
||||||
|
MARIADB_ROOT_PASSWORD="secret"
|
||||||
|
|
||||||
|
MAIL_SERVER_ADMIN="digitales@jdav-town.de"
|
||||||
|
|
||||||
|
DJANGO_SUPERUSER_USERNAME="superuser"
|
||||||
|
DJANGO_SUPERUSER_PASSWORD="secret"
|
||||||
Loading…
Reference in New Issue