Files

87 lines
2.3 KiB
YAML

version: "3.9"
services:
website:
image: marcpartensky/website
restart: unless-stopped
env_file:
- ../data/secrets/website.env
environment:
VIRTUAL_HOST: marcpartensky.com
VIRTUAL_PORT: 80
# SECURE_SSL_REDIRECT: false
# KEY: /app/privkey.pem
# CERT: /app/fullchain.pem
# entrypoint: "daphne -e ssl:443:privateKey=$$KEY:certKey=$$CERT django_project.asgi:application"
# entrypoint: daphne -b website -e ssl:443:privateKey=/app/privkey.pem:certKey=/app/fullchain.pem django_project.asgi:application
# command:
# - "80"
# - "0.0.0.0"
# depends_on:
# - redis
volumes:
- media:/app/media
networks:
- website
- caddy
- postgres
- redis
# labels:
# caddy: marcpartensky.com
# caddy.reverse_proxy: "{{upstreams 80}}"
# # caddy.tls: "internal"
# traefik.enable: "true"
# traefik.http.routers.website.rule: Host(`marcpartensky.com, marcpartensky.fr`)
# traefik.http.routers.website.entrypoints: websecure
# traefik.http.routers.website.tls.certresolver: tls
# traefik.http.services.website.loadbalancer.server.port: 80
deploy:
placement:
constraints:
- node.role == manager
restart_policy:
condition: on-failure
# mode: global
update_config:
parallelism: 1
delay: 5s
order: start-first
failure_action: rollback
rollback_config:
order: start-first
resources:
reservations:
cpus: "1"
memory: "500M"
labels:
traefik.enable: "true"
traefik.http.routers.website.rule: >
Host(`marcpartensky.com`) || Host(`marcpartensky.fr`)
traefik.http.routers.website.entrypoints: websecure
traefik.http.routers.website.tls.certresolver: tls
traefik.http.services.website.loadbalancer.server.port: 80
# redis:
# image: redis:alpine
# restart: unless-stopped
# networks:
# - website
# healthcheck:
# test: ["CMD", "redis-cli","ping"]
# deploy:
# placement:
# constraints:
# - node.role == manager
volumes:
media:
networks:
website:
redis:
external: true
postgres:
external: true
caddy:
external: true