version: "3" networks: traefik-docker_default: external: true services: cloud_db: image: postgres:13 container_name: "cloud_db" environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=${DB_USER:-odoo} - POSTGRES_USER=${DB_PASS:-odoo} - PGDATA=/var/lib/postgresql/data/pgdata volumes: - ./data:/var/lib/postgresql/data/pgdata networks: - traefik-docker_default ospp_cloud: image: odoo:16.0 container_name: "ospp_cloud" depends_on: - cloud_db # ports: # - "8069:8069" volumes: - ./files:/var/lib/odoo - ./config:/etc/odoo - ./addons:/mnt/extra-addons environment: - HOST=cloud_db - USER=${DB_USER:-odoo} - PASSWORD=${DB_PASS:-odoo} networks: - traefik-docker_default labels: - "traefik.enable=true" - "traefik.http.routers.ospp_cloud.rule=Host(`${CLOUD_DOMAIN}`)" - "traefik.http.routers.ospp_cloud.service=ospp_cloud" - "traefik.http.services.ospp_cloud.loadbalancer.server.port=8069" - "traefik.http.middlewares.ospp_cloud.compress=true" - "traefik.http.routers.ospp_cloud_im.rule=Host(`${CLOUD_DOMAIN}`) && (PathPrefix(`/longpolling`))" - "traefik.http.routers.ospp_cloud_im.service=ospp_cloud_im" - "traefik.http.services.ospp_cloud_im.loadbalancer.server.port=8072" - "traefik.http.middlewares.ospp_cloud_im.compress=true" # #services: # traefik: # image: "traefik:v2.4" # container_name: "traefik" # env_file: .env # environment: # - UID=2000 # - GID=2000 # ports: # - "80:80" # - "443:443" # command: # - --api.insecure=true # - --api.dashboard=true # - --api.debug=true # - --log=true # - --log.level=INFO # - --providers.docker=true # - --providers.docker.exposedbydefault=false # - --providers.file.filename=/dynamic.yml # - --providers.docker.network=web # - --entrypoints.http.address=:80 # - --entrypoints.https.address=:443 # - --certificatesresolvers.le.acme.httpchallenge=true # - --certificatesresolvers.le.acme.httpchallenge.entrypoint=http # - --certificatesresolvers.le.acme.email=${LETS_ENCRYPT_CONTACT_EMAIL} # - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json # networks: # - web # volumes: # - "${BASE_VOLUME_DIR}/traefik/conf/letsencrypt:/letsencrypt" # - "${BASE_VOLUME_DIR}/traefik/conf/dynamic.yml:/dynamic.yml" # - "/var/run/docker.sock:/var/run/docker.sock:ro" # labels: # - traefik.enable=true # - traefik.http.routers.traefik-http.rule=Host(`${TRAEFIK_HOSTNAME}`) # - traefik.http.routers.traefik-http.entrypoints=http # - traefik.http.routers.traefik-http.service=traefik # - traefik.http.routers.traefik-http.middlewares=redirect@file # - traefik.http.routers.traefik-https.rule=Host(`${TRAEFIK_HOSTNAME}`) # - traefik.http.routers.traefik-https.entrypoints=https # - traefik.http.routers.traefik-https.tls=true # - traefik.http.routers.traefik-https.tls.options=default # - traefik.http.routers.traefik-https.service=traefik # - traefik.http.routers.traefik-https.tls.certresolver=le # - traefik.http.services.traefik.loadbalancer.server.port=8080 # - traefik.http.routers.traefik-https.middlewares=gzip # - traefik.http.middlewares.gzip.compress=true # # odoo: # image: registry.wisecoding.io/docker/odoo:11.0 # container_name: odoo # networks: # - web # env_file: .env # healthcheck: # test: ["CMD-SHELL", "curl -X HEAD -I http://127.0.0.1:8069"] # interval: 10s # timeout: 10s # retries: 10 # volumes: # #- "${BASE_VOLUME_DIR}/odoo/entrypoint.sh:/entrypoint.sh" # - "${BASE_VOLUME_DIR}/odoo/extra-addons:/opt/odoo/extra-addons" # - "${BASE_VOLUME_DIR}/odoo/data:/opt/odoo/data" # - "${BASE_VOLUME_DIR}/odoo/logs:/opt/odoo/logs" # - "${BASE_VOLUME_DIR}/odoo/conf:/opt/odoo/conf" # ulimits: # nofile: # soft: 65536 # hard: 65536 # # labels: # - traefik.enable=true # #----------------------------------------------- routers for: odoo -------------------------------------------------- # # http # - traefik.http.routers.odoo-http.rule=Host(`${ODOO_HOSTNAME}`) # - traefik.http.routers.odoo-http.entrypoints=http # - traefik.http.routers.odoo-http.middlewares=redirect@file # - traefik.http.routers.odoo-http.service=odoo # # https # - traefik.http.routers.odoo-https.rule=Host(`${ODOO_HOSTNAME}`) # - traefik.http.routers.odoo-https.entrypoints=https # - traefik.http.routers.odoo-https.service=odoo # - traefik.http.routers.odoo-https.tls.certresolver=le # - traefik.http.routers.odoo-https.middlewares=gzip,sslheader,limit # #----------------------------- routes for: odoo/web/database || odoo/website/info ----------------------------- # # http # - traefik.http.routers.odoo-db-http.rule=Host(`${ODOO_HOSTNAME}`) && (PathPrefix(`/web/database`) || PathPrefix(`/website/info`)) # - traefik.http.routers.odoo-db-http.entrypoints=http # - traefik.http.routers.odoo-db-http.service=odoo # - traefik.http.routers.odoo-db-http.middlewares=redirect@file # - traefik.http.services.odoo-db-http.loadbalancer.server.port=8069 # # https # - traefik.http.routers.odoo-db-https.rule=Host(`${ODOO_HOSTNAME}`) && (PathPrefix(`/web/database`) || PathPrefix(`/website/info`)) # - traefik.http.routers.odoo-db-https.entrypoints=https # - traefik.http.routers.odoo-db-https.service=odoo # - traefik.http.routers.odoo-db-https.tls.certresolver=le # - traefik.http.routers.odoo-db-https.middlewares=gzip,sslheader,limit # - traefik.http.services.odoo-db-https.loadbalancer.server.port=8069 # #---------------------------------------- routes for: odoo/longpolling ------------------------------------------------ # # http # - traefik.http.routers.odoo-im-http.rule=Host(`${ODOO_HOSTNAME}`) && (PathPrefix(`/longpolling`)) # - traefik.http.routers.odoo-im-http.entrypoints=http # - traefik.http.routers.odoo-im-http.middlewares=redirect@file # - traefik.http.routers.odoo-im-http.service=odoo-im # # https # - traefik.http.routers.odoo-im-https.rule=Host(`${ODOO_HOSTNAME}`) && (PathPrefix(`/longpolling`)) # - traefik.http.routers.odoo-im-https.entrypoints=https # - traefik.http.routers.odoo-im-https.service=odoo-im # - traefik.http.routers.odoo-im-https.tls.certresolver=le # - traefik.http.routers.odoo-im-https.middlewares=gzip,sslheader,limit # # #====================================================== services =========================================================== # - traefik.http.services.odoo.loadbalancer.server.port=8069 # - traefik.http.services.odoo-im.loadbalancer.server.port=8072 # # #===================================================== middlewares ========================================================= # - traefik.http.middlewares.gzip.compress=true # - traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https # - traefik.http.middlewares.limit.buffering.memRequestBodyBytes=20971520 # - traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=20971520