Instalar Mautic con Traefik

version: "3.8"

services:
  traefik:
    image: "traefik"
    restart: always
    command:
      - "--api=true"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
      - "--certificatesresolvers.mytlschallenge.acme.email=pepe@midominio.com"
      - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /app/letsencrypt:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
      
  mauticdb:
    restart: always
    image: percona/percona-server:5.7
    container_name: mauticdb
    ports:
      # <Puerto expuesto> : < Puerto dentro del container>
      # Solo para desarrollo. Comentar en produccion
      - '3306:3306'
    expose:
      # Abre el puerto 5432 en el container al exterior sin tocar nada de la configuración del mysql
      # Solo para desarrollo. Comentar en produccion        
      - '3306'
    volumes:
      - mysql_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=miclave
    command:
      --character-set-server=utf8mb4 
--collation-server=utf8mb4_general_ci mautic: restart: always image: mautic/mautic:latest container_name: mautic links: - mauticdb:mysql depends_on: - mauticdb ports: # Traefik usa el puerto 80 luego tiene que ser distinto - "8081:80" volumes: - mautic_data:/var/www/html environment: - MAUTIC_DB_HOST=mauticdb - MYSQL_PORT_3306_TCP=3306 - MAUTIC_DB_USER=root - MAUTIC_DB_PASSWORD=miclave - MAUTIC_DB_NAME=mautic - MAUTIC_RUN_CRON_JOBS=true #- PHP_INI_DATE_TIMEZONE=${GENERIC_TIMEZONE} labels: - traefik.enable=true # Routes - traefik.http.routers.mautic.rule=Host(`mautic.midominio.com`) - traefik.http.routers.mautic-secure.tls=true - traefik.http.routers.mautic.entrypoints=websecure - traefik.http.routers.mautic.tls.certresolver=mytlschallenge # Middlewares - traefik.http.middlewares.mautic.headers.SSLRedirect=true - traefik.http.middlewares.mautic.headers.contentTypeNosniff=true - traefik.http.middlewares.mautic.headers.SSLHost=mautic.midominio.com - traefik.http.middlewares.mautic.headers.forceSTSHeader=true portainer: image: portainer/portainer-ce:2.11.1 command: -H unix:///var/run/docker.sock restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data labels: # Frontend - "traefik.enable=true" - "traefik.http.routers.frontend.rule=Host(`portainer.midominio.com`)" - "traefik.http.routers.frontend.entrypoints=websecure" - "traefik.http.services.frontend.loadbalancer.server.port=9000" - "traefik.http.routers.frontend.service=frontend" - "traefik.http.routers.frontend.tls.certresolver=leresolver" volumes: mautic_data: sslcerts: mysql_data: portainer_data: