version: '3.1' services: mysql: image: "mysql:5.7" command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci restart: always environment: MYSQL_RANDOM_ROOT_PASSWORD: "true" expose: - "3306" labels: - traefik.enable=false volumes: - ./docker:/docker-entrypoint-initdb.d:ro - ./data/mysql:/var/lib/mysql:rw redis: image: redis healthcheck: test: ["CMD", "redis-cli","ping"] interval: 30s timeout: 10s retries: 3 labels: - traefik.enable=false traefik: image: "traefik:v2.0.0" command: - --providers.docker=true #- --providers.docker.exposedbydefault=false - --entrypoints.http.address=:80 - --entrypoints.https.address=:443 - --certificatesResolvers.myhttpchal.acme.email=${EMAIL?Variable EMAIL not set} - --certificatesResolvers.myhttpchal.acme.storage=acme.json - --certificatesResolvers.myhttpchal.acme.httpChallenge=true - --certificatesResolvers.myhttpchal.acme.httpChallenge.entryPoint=http - --accessLog #- --debug=true #- --retry #- --api.insecure # Don't do that in production ports: - "80:80" - "443:443" # dev hack, remove for production... #- "81:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - ./docker/acme.json:/acme.json labels: - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https - traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`) - traefik.http.routers.redirs.entrypoints=http - traefik.http.routers.redirs.middlewares=redirect-to-https unified: build: . depends_on: - mysql - redis expose: - "7070" - "3000" environment: stream__host: redis web__listen: unified web__public_url: "https://${DOMAIN?Variable DOMAIN not set}" admin__listen: unified admin__modKey: enableAdmin database__default__type: mysql database__default__options__database: lmpc_platform database__default__options__host: mysql database__default__options__username: platform database__default__options__password: publicchat_test database__overlay__options__username: overlay database__overlay__options__password: publicchat_test database__overlay__options__database: lmpc_overlay #pomf__provider: "nodepomf" #pomf__provider_url: "http://nodepomf/upload" pomf__provider_url: "http://unified:7070/upload" # these are defaults... #NPOMF_DB_FILENAME: ./databases/pomf_files.db #NPOMF_MAX_UPLOAD_SIZE: 1000000 # 10mb #NPOMF_FILE_URL: "https://${DOMAIN?Variable DOMAIN not set}/f" #api__url: http://unified:7070/ #admin__url: http://unified:3000/ VIRTUAL_PORT: 7070 VIRTUAL_HOST: unified.local labels: - traefik.enable=true - traefik.http.routers.platform.tls.certResolver=myhttpchal - traefik.http.routers.platform.rule=Host(`${DOMAIN?Variable DOMAIN not set}`) - traefik.http.services.platform.loadbalancer.server.port=7070 volumes: - ./docker:/usr/src/app/docker:ro - ./loki.ini:/usr/src/app/loki.ini - ./data/files:/usr/src/app/files:rw - ./data/pomfdb:/usr/src/app/databases:rw entrypoint: ["./docker/wait-for-it/wait-for-it.sh", "mysql:3306", "--", "./docker/wait-for-it/wait-for-it.sh", "redis:6379", "--", "pm2-runtime", "overlay_server.js"]