version: '3.8' services: traefik: image: traefik:2.6 restart: always networks: pterodactyl: aliases: - pterodactyl.test - minio.pterodactyl.test - s3.minio.pterodactyl.test - wings.pterodactyl.test ports: - "443:443" - "8080:8080" security_opt: - no-new-privileges=true volumes: - ./traefik:/etc/traefik:ro - ./docker/certificates:/etc/certs:ro - /var/run/docker.sock:/var/run/docker.sock:ro app: build: context: ./build/panel dockerfile: Dockerfile stop_grace_period: '1s' networks: pterodactyl: aliases: - pterodactyl.test volumes: - panel_code:/var/www/html - ./docker/certificates:/etc/certs:ro - ./docker/php:/etc/php/mods-available:ro labels: - "traefik.enable=true" - "traefik.http.routers.app.tls=true" - "traefik.http.routers.app.rule=Host(`pterodactyl.test`)" - "traefik.http.routers.app.entrypoints=https" - "traefik.http.routers.app.service=app" - "traefik.http.services.app.loadbalancer.server.port=80" - "traefik.http.routers.hmr.tls=true" - "traefik.http.routers.hmr.rule=Host(`hmr.pterodactyl.test`)" - "traefik.http.routers.hmr.entrypoints=https" - "traefik.http.routers.hmr.service=hmr" - "traefik.http.services.hmr.loadbalancer.server.port=8080" wings: build: context: ./build/wings dockerfile: Dockerfile stop_grace_period: '1s' tty: true stdin_open: true networks: - pterodactyl ports: - "2022:2022" volumes: - ./code/wings:/home/root/wings - wings_data:/var/lib/pterodactyl - /var/run/docker.sock:/var/run/docker.sock:ro labels: - "traefik.enable=true" - "traefik.http.routers.wings.tls=true" - "traefik.http.routers.wings.rule=Host(`wings.pterodactyl.test`)" - "traefik.http.routers.wings.entrypoints=https" - "traefik.http.services.wings.loadbalancer.server.port=8080" mysql: image: mariadb:10.7 restart: unless-stopped ports: - "3306:3306" command: - --innodb-buffer-pool-size=1G - --innodb-log-file-size=256M - --innodb-flush-log-at-trx-commit=0 - --lower-case-table-names=1 volumes: - mysql:/var/lib/mysql - ./docker/mysql:/docker-entrypoint-initdb.d:ro environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: panel MYSQL_USER: pterodactyl MYSQL_PASSWORD: pterodactyl networks: - pterodactyl redis: image: redis:alpine restart: unless-stopped networks: - pterodactyl minio: image: minio/minio:RELEASE.2022-02-05T04-40-59Z restart: unless-stopped command: server --console-address ":9001" /var/lib/minio environment: MINIO_ROOT_USER: minio MINIO_ROOT_PASSWORD: password expose: - 9000 - 9001 networks: pterodactyl: aliases: - s3.minio.pterodactyl.test volumes: - minio:/var/lib/minio labels: - "traefik.enable=true" - "traefik.http.routers.minio.tls=true" - "traefik.http.routers.minio.rule=Host(`s3.minio.pterodactyl.test`)" - "traefik.http.routers.minio.entrypoints=https" - "traefik.http.routers.minio.service=minio" - "traefik.http.routers.minio-console.tls=true" - "traefik.http.routers.minio-console.rule=Host(`minio.pterodactyl.test`)" - "traefik.http.routers.minio-console.entrypoints=https" - "traefik.http.routers.minio-console.service=minio-console" - "traefik.http.services.minio.loadbalancer.server.port=9000" - "traefik.http.services.minio-console.loadbalancer.server.port=9001" networks: pterodactyl: driver: bridge volumes: panel_code: mysql: driver: local minio: driver: local wings_data: driver: local x-mutagen: sync: defaults: permissions: defaultFileMode: 0666 defaultDirectoryMode: 0777 code: alpha: "./code/panel" beta: "volume://panel_code" mode: "two-way-resolved" ignore: vcs: true paths: - ".idea"