ba-thesis/production.docker-compose.yml

115 lines
3.3 KiB
YAML

---
version: "3"
services:
medwings-caddy:
container_name: medwings-caddy
restart: unless-stopped
build:
context: .
dockerfile: production.caddy.Dockerfile
args:
CUSTOM_UID: 1000
CUSTOM_GID: 1000
expose:
- "8000"
networks:
- medwings
- proxy
environment:
TZ: ${TIMEZONE}
volumes:
- /srv/medwings/static:/srv/static:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.medwings.entrypoints=https"
- "traefik.http.routers.medwings.rule=Host(`medwings.lobbes.dev`)"
- "traefik.http.routers.medwings.middlewares=default@file"
- "traefik.http.routers.medwings.tls=true"
- "traefik.http.services.medwings.loadbalancer.server.port=8000"
- "traefik.docker.network=proxy"
medwings-django:
container_name: medwings-django
restart: unless-stopped
depends_on:
- medwings-caddy
- ${PG_HOST}
build:
context: .
dockerfile: production.django.Dockerfile
args:
CUSTOM_UID: 1000
CUSTOM_GID: 1000
expose:
- "8000"
networks:
- medwings
environment:
TZ: ${TIMEZONE}
DJANGO_DEBUG_MODE: ${DJANGO_DEBUG_MODE}
DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY}
PG_NAME: ${PG_NAME}
PG_USER: ${PG_USER}
PG_PASSWORD: ${PG_PASSWORD}
PG_HOST: ${PG_HOST}
PG_PORT: ${PG_PORT}
WITHINGS_CLIENT_ID: ${WITHINGS_CLIENT_ID}
WITHINGS_CLIENT_SECRET: ${WITHINGS_CLIENT_SECRET}
GOTIFY_USER: ${GOTIFY_USER}
GOTIFY_PASSWORD: ${GOTIFY_PASSWORD}
GOTIFY_HOST: ${GOTIFY_HOST}
GOTIFY_PUBLIC_URL: ${GOTIFY_PUBLIC_URL}
volumes:
- /srv/medwings/static:/srv/static
medwings-postgres:
image: postgres:alpine
container_name: ${PG_HOST}
restart: unless-stopped
expose:
- ${PG_PORT}
networks:
- medwings
volumes:
- /srv/medwings/db:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${PG_NAME}
POSTGRES_USER: ${PG_USER}
POSTGRES_PASSWORD: ${PG_PASSWORD}
TZ: ${TIMEZONE}
medwings-gotify:
image: gotify/server
container_name: medwings-gotify
restart: unless-stopped
expose:
- "80"
networks:
- medwings
- proxy
volumes:
- /srv/medwings/gotify:/app/data
environment:
TZ: ${TIMEZONE}
GOTIFY_SERVER_SSL_REDIRECTTOHTTPS: false
GOTIFY_DEFAULTUSER_NAME: ${GOTIFY_USER}
GOTIFY_DEFAULTUSER_PASS: ${GOTIFY_PASSWORD}
GOTIFY_SERVER_CORS_ALLOWORIGINS: "- \"medwings-django:8000\"\n- \"medwings-notifications.lobbes.dev\"\n- \"medwings.lobbes.dev\""
GOTIFY_SERVER_CORS_ALLOWMETHODS: "- \"GET\"\n- \"POST\""
GOTIFY_SERVER_CORS_ALLOWHEADERS: "- \"Authorization\"\n- \"content-type\""
labels:
- "traefik.enable=true"
- "traefik.http.routers.medwings-notifications.entrypoints=https"
- "traefik.http.routers.medwings-notifications.rule=Host(`medwings-notifications.lobbes.dev`)"
- "traefik.http.routers.medwings-notifications.middlewares=default@file"
- "traefik.http.routers.medwings-notifications.tls=true"
- "traefik.http.services.medwings-notifications.loadbalancer.server.port=80"
- "traefik.docker.network=proxy"
networks:
medwings:
external: false
proxy:
external: true
...