92 lines
2.5 KiB
YAML
92 lines
2.5 KiB
YAML
services:
|
|
traefik:
|
|
image: traefik:v3.0
|
|
container_name: traefik
|
|
restart: always
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
- "8080:8080"
|
|
command:
|
|
- "--api.insecure=true"
|
|
- "--providers.docker=true"
|
|
- "--providers.docker.network=web"
|
|
- "--providers.docker.exposedbydefault=false"
|
|
- "--providers.file.filename=/etc/traefik/tls.yml"
|
|
- "--providers.file.watch=true"
|
|
- "--entrypoints.web.address=:80"
|
|
- "--entrypoints.websecure.address=:443"
|
|
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
|
- "--certificatesresolvers.myresolver.acme.email=you@example.com"
|
|
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
|
- "--entrypoints.websecure.http.tls=true"
|
|
- "--entrypoints.websecure.http.tls.domains[0].main=emf1995.club"
|
|
- "--log.level=DEBUG"
|
|
volumes:
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
- "./letsencrypt:/letsencrypt"
|
|
networks:
|
|
- web
|
|
depends_on:
|
|
- odoo
|
|
db:
|
|
image: postgres:17
|
|
container_name: db-prod
|
|
user: root
|
|
environment:
|
|
- POSTGRES_USER=emf
|
|
- POSTGRES_PASSWORD=emfforever
|
|
- POSTGRES_DB=emf1995
|
|
restart: always
|
|
volumes:
|
|
- ./postgresql:/var/lib/postgresql/data
|
|
networks:
|
|
- backend
|
|
|
|
odoo:
|
|
image: odoo:18
|
|
container_name: odoo-prod
|
|
user: root
|
|
depends_on:
|
|
- db
|
|
ports:
|
|
- "8069:8069"
|
|
- "8072:8072" # live chat
|
|
tty: true
|
|
command: --
|
|
environment:
|
|
- HOST=db
|
|
- USER=emf
|
|
- PASSWORD=emfforever
|
|
- PIP_BREAK_SYSTEM_PACKAGES=1
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=web"
|
|
|
|
# HTTP router -> redirect
|
|
- "traefik.http.routers.odoo-http.rule=Host(`emf1995.club`)"
|
|
- "traefik.http.routers.odoo-http.entrypoints=web"
|
|
- "traefik.http.routers.odoo-http.middlewares=redirect-to-https"
|
|
|
|
# Middleware
|
|
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
|
|
|
|
# HTTPS router
|
|
- "traefik.http.routers.odoo-https.rule=Host(`emf1995.club`)"
|
|
- "traefik.http.routers.odoo-https.entrypoints=websecure"
|
|
- "traefik.http.routers.odoo-https.service=odoo"
|
|
- "traefik.http.services.odoo.loadbalancer.server.port=8069"
|
|
volumes:
|
|
#- /etc/timezone:/etc/timezone:ro
|
|
#- /etc/localtime:/etc/localtime:ro
|
|
- ./entrypoint.sh:/entrypoint.sh
|
|
- ./addons:/mnt/extra-addons
|
|
- ./etc:/etc/odoo
|
|
restart: always
|
|
networks:
|
|
- web
|
|
- backend
|
|
networks:
|
|
web:
|
|
backend:
|