56 lines
1.9 KiB
YAML
Executable File
56 lines
1.9 KiB
YAML
Executable File
services:
|
||
flask-app:
|
||
image: python:3.11-slim
|
||
container_name: bethaus-app
|
||
restart: always
|
||
working_dir: /app
|
||
volumes:
|
||
- ./:/app
|
||
- ./filecache:/app/filecache
|
||
- ./templates:/app/templates
|
||
- ./GeoLite2-City.mmdb:/app/GeoLite2-City.mmdb:ro
|
||
- type: bind
|
||
source: /mnt
|
||
target: /mnt
|
||
bind:
|
||
propagation: rshared
|
||
environment:
|
||
- FLASK_APP=app.py
|
||
- FLASK_RUN_HOST=0.0.0.0
|
||
- FLASK_ENV=production
|
||
networks:
|
||
- traefik
|
||
labels:
|
||
- "traefik.enable=true"
|
||
|
||
# ----------------------------------------------------
|
||
# HTTP router: Listen on entrypoint "web" (port 80)
|
||
# and apply a middleware to force redirect to HTTPS
|
||
# ----------------------------------------------------
|
||
- "traefik.http.routers.bethaus-app.rule=Host(`app.bethaus-speyer.de`)"
|
||
- "traefik.http.routers.bethaus-app.entrypoints=web"
|
||
- "traefik.http.routers.bethaus-app.middlewares=redirect-to-https"
|
||
|
||
# This is the "redirect-to-https" middleware definition
|
||
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
|
||
|
||
# -----------------------------------------------------
|
||
# HTTPS router: Listen on entrypoint "websecure"
|
||
# using TLS via your ACME (Let's Encrypt) resolver
|
||
# -----------------------------------------------------
|
||
- "traefik.http.routers.bethaus-app-secure.rule=Host(`app.bethaus-speyer.de`)"
|
||
- "traefik.http.routers.bethaus-app-secure.entrypoints=websecure"
|
||
- "traefik.http.routers.bethaus-app-secure.tls=true"
|
||
- "traefik.http.routers.bethaus-app-secure.tls.certresolver=myresolver"
|
||
|
||
# The service’s internal port
|
||
- "traefik.http.services.bethaus-app.loadbalancer.server.port=5000"
|
||
|
||
command: >
|
||
sh -c "pip install -r requirements.txt && flask run"
|
||
|
||
networks:
|
||
traefik:
|
||
external: true
|
||
|