diff --git a/docker-compose.yml b/docker-compose.yml index 007e02e3..77a83805 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,11 +25,14 @@ services: build: context: . dockerfile: docker/Dockerfile - command: [ "/bin/bash", "/code/compose-start.sh" ] + command: [ "/bin/bash", "/code/docker/compose-start.sh" ] depends_on: - db environment: - "LOCAL_DEVELOPMENT=true" + - "DOCKER_DIR=/code/docker" + - "PYTHON=python" + - "WEB_PORT=8000" env_file: - .env init: true @@ -43,6 +46,42 @@ services: - ../website2022/:/website stop_signal: SIGKILL + mailman-core: + image: maxking/mailman-core + stop_grace_period: 30s + env_file: + - .env + depends_on: + - db + ports: + - "8001:8001" # API + - "8024:8024" # LMTP - incoming emails + volumes: + - ./mailman/core:/opt/mailman/ + networks: + - backend + + mailman-web: + image: maxking/mailman-web + entrypoint: /opt/mailman-docker/compose-start.sh + environment: + - "DOCKER_DIR=/opt/mailman-docker" + - "PYTHON=python3" + - "WEB_PORT=8008" + env_file: + - .env + depends_on: + - db + ports: + - "8008:8008" # HTTP + - "8080:8080" # uwsgi + volumes: + - ./mailman/web:/opt/mailman-web-data + - ./docker:/opt/mailman-docker + networks: + - backend + + networks: backend: frontend: diff --git a/compose-start.sh b/docker/compose-start.sh similarity index 58% rename from compose-start.sh rename to docker/compose-start.sh index 7eb951f9..c04e2bc0 100755 --- a/compose-start.sh +++ b/docker/compose-start.sh @@ -4,9 +4,9 @@ # for use with docker-compose. In deployed or production scenarios you would # not necessarily use this exact setup. # -./docker/wait-for-it.sh -h db -p 5432 -t 20 -- python manage.py migrate --noinput +$DOCKER_DIR/wait-for-it.sh -h db -p $PGPORT -t 20 -- $PYTHON manage.py migrate --noinput -python manage.py collectstatic --noinput +$PYTHON manage.py collectstatic --noinput -# gunicorn -c gunicorn.conf.py --log-level INFO --reload -b 0.0.0.0:8000 config.wsgi -python manage.py runserver 0.0.0.0:8000 +# gunicorn -c gunicorn.conf.py --log-level INFO --reload -b 0.0.0.0:$WEB_PORT config.wsgi +$PYTHON manage.py runserver 0.0.0.0:$WEB_PORT diff --git a/docker/wait-for-it.sh b/docker/wait-for-it.sh index 071c2bee..f886ef81 100755 --- a/docker/wait-for-it.sh +++ b/docker/wait-for-it.sh @@ -146,7 +146,7 @@ WAITFORIT_TIMEOUT_PATH=$(type -p timeout) WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH) if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then WAITFORIT_ISBUSY=1 - WAITFORIT_BUSYTIMEFLAG="-t" + WAITFORIT_BUSYTIMEFLAG="" else WAITFORIT_ISBUSY=0 diff --git a/env.template b/env.template index cfa5aae0..a515f456 100644 --- a/env.template +++ b/env.template @@ -20,3 +20,11 @@ AWS_ACCESS_KEY_ID="changeme" AWS_SECRET_ACCESS_KEY="changeme" BUCKET_NAME="stage.boost.org" +# Mailman database settings +DATABASE_URL="postgresql://postgres@db:5432/postgres" +DATABASE_TYPE="postgres" +DATABASE_CLASS="mailman.database.postgresql.PostgreSQLDatabase" +HYPERKITTY_API_KEY="changeme!" +MAILMAN_ADMIN_USER="" +MAILMAN_ADMIN_EMAIL="" +SERVE_FROM_DOMAIN=localhost diff --git a/mailman/core/README b/mailman/core/README new file mode 100644 index 00000000..0fac23e9 --- /dev/null +++ b/mailman/core/README @@ -0,0 +1 @@ +This directory will hold mailman-core config and related. diff --git a/mailman/web/README b/mailman/web/README new file mode 100644 index 00000000..19da125a --- /dev/null +++ b/mailman/web/README @@ -0,0 +1 @@ +This directory will hold mailman-web config, collected static assets and related. diff --git a/mailman/web/logs/README b/mailman/web/logs/README new file mode 100644 index 00000000..50d527d1 --- /dev/null +++ b/mailman/web/logs/README @@ -0,0 +1 @@ +This directory will hold mailman-web logs. diff --git a/mailman/web/settings_local.py b/mailman/web/settings_local.py new file mode 100644 index 00000000..63caf3d6 --- /dev/null +++ b/mailman/web/settings_local.py @@ -0,0 +1 @@ +# Override local settings here