Enable production deployment with Traefik and update dependencies

Reinstated and configured Docker's production deploy settings, including replication. Added a new `docker-compose.prod.override.yml` for Traefik integration. Updated `requirements` to include Daphne and related dependencies for ASGI compatibility.
main
Arne Schauf 3 weeks ago
parent 4aace265b5
commit 70935c497a
  1. 3
      docker-compose.dev.override.yml
  2. 39
      docker-compose.prod.override.yml
  3. 16
      docker-compose.yml
  4. 1
      requirements.in
  5. 57
      requirements.txt

@ -21,11 +21,14 @@ services:
volumes:
- dbdata:/var/lib/postgresql/data
- ./db:/mnt
manage:
deploy:
replicas: 0
environment:
DJANGO_SETTINGS_MODULE: feo_homepage.settings.dev
depends_on:
- db
mailhog:
image: mailhog/mailhog

@ -0,0 +1,39 @@
services:
backend:
restart: unless-stopped
networks:
- default
- traefik
- db
labels:
- traefik.enable=true
- traefik.docker.network=traefik
- traefik.http.routers.feohomepage.entrypoints=websecure
- traefik.http.routers.feohomepage.rule=Host(`feoneu.asw.io`)
- traefik.http.routers.feohomepage.tls.certresolver=hetzner
- traefik.http.services.feohomepage.loadbalancer.server.port=8000
nginx:
image: nginx:1.23
volumes:
- ./backend/static:/usr/share/nginx/html/static:ro
- ./backend/media:/usr/share/nginx/html/media:ro
networks:
- traefik
labels:
- traefik.enable=true
- traefik.docker.network=traefik
- traefik.http.routers.feohomepagestatic.entrypoints=websecure
- traefik.http.routers.feohomepagestatic.rule=Host(`feoneu.asw.io`) && (PathPrefix(`/static`) || PathPrefix(`/media`))
- traefik.http.routers.feohomepagestatic.tls.certresolver=hetzner
- traefik.http.services.feohomepagestatic.loadbalancer.server.port=80
restart: unless-stopped
networks:
default:
traefik:
external: true
name: traefik
db:
external: true
name: db

@ -8,10 +8,10 @@ services:
entrypoint:
- "daphne"
command: "-b 0.0.0.0 feo_homepage.asgi:application"
# deploy:
# mode: replicated
# replicas: 6
# endpoint_mode: vip
deploy:
mode: replicated
replicas: 6
endpoint_mode: vip
volumes:
- .:/app
- userhome:/home/runuser
@ -19,9 +19,7 @@ services:
- .env
environment:
PYTHONDONTWRITEBYTECODE: 1
DJANGO_SETTINGS_MODULE: feo_homepage.settings.dev
depends_on:
- db
DJANGO_SETTINGS_MODULE: feo_homepage.settings.prod
restart: unless-stopped
manage:
@ -38,11 +36,9 @@ services:
- userhome:/home/runuser
env_file:
- .env
depends_on:
- db
environment:
PYTHONDONTWRITEBYTECODE: 1
DJANGO_SETTINGS_MODULE: feo_homepage.settings.dev
DJANGO_SETTINGS_MODULE: feo_homepage.settings.prod
volumes:
userhome:

@ -7,3 +7,4 @@ icalendar
psycopg[binary]
django-crispy-forms
django-braces
daphne

@ -7,13 +7,34 @@
anyascii==0.3.2
# via wagtail
asgiref==3.8.1
# via django
# via
# daphne
# django
attrs==25.3.0
# via
# service-identity
# twisted
autobahn==24.4.2
# via daphne
automat==25.4.16
# via twisted
beautifulsoup4==4.13.4
# via wagtail
certifi==2025.4.26
# via requests
cffi==1.17.1
# via cryptography
charset-normalizer==3.4.1
# via requests
constantly==23.10.4
# via twisted
cryptography==44.0.2
# via
# autobahn
# pyopenssl
# service-identity
daphne==4.1.2
# via -r requirements.in
defusedxml==0.7.1
# via willow
django==5.2
@ -64,10 +85,19 @@ et-xmlfile==2.0.0
# via openpyxl
filetype==1.2.0
# via willow
hyperlink==21.0.0
# via
# autobahn
# twisted
icalendar==6.1.3
# via -r requirements.in
idna==3.10
# via requests
# via
# hyperlink
# requests
# twisted
incremental==24.7.2
# via twisted
laces==0.1.2
# via wagtail
openpyxl==3.1.5
@ -82,10 +112,22 @@ psycopg[binary]==3.2.6
# via -r requirements.in
psycopg-binary==3.2.6
# via psycopg
pyasn1==0.6.1
# via
# pyasn1-modules
# service-identity
pyasn1-modules==0.4.2
# via service-identity
pycparser==2.22
# via cffi
pyopenssl==25.0.0
# via twisted
python-dateutil==2.9.0.post0
# via icalendar
requests==2.32.3
# via wagtail
service-identity==24.2.0
# via twisted
six==1.17.0
# via python-dateutil
soupsieve==2.7
@ -94,12 +136,18 @@ sqlparse==0.5.3
# via django
telepath==0.3.1
# via wagtail
twisted[tls]==24.11.0
# via daphne
txaio==23.1.1
# via autobahn
typing-extensions==4.13.2
# via
# beautifulsoup4
# django-stubs-ext
# django-tasks
# psycopg
# pyopenssl
# twisted
tzdata==2025.2
# via icalendar
urllib3==2.4.0
@ -116,3 +164,8 @@ willow[heif]==1.10.0
# via
# wagtail
# willow
zope-interface==7.2
# via twisted
# The following packages are considered to be unsafe in a requirements file:
# setuptools

Loading…
Cancel
Save