services: dockfront: image: syncloudsoftech/dockfront environment: ORIGIN_TYPE: s3 S3_ACCESS_KEY_ID: distware S3_BUCKET: distware S3_ENDPOINT: http://minio:9091 S3_PATH_STYLE_ENDPOINT: "true" S3_REGION: us-east-1 S3_SECRET_ACCESS_KEY: distware labels: - "traefik.http.routers.cdn.entrypoints=web,websecure" - "traefik.http.routers.cdn.rule=Host(`cdn.local.dev`)" - "traefik.http.routers.cdn.tls=true" - "traefik.http.services.cdn.loadbalancer.server.port=80" mailcatcher: image: syncloudsoftech/mailcatcher labels: - "traefik.http.routers.mailcatcher.entrypoints=web,websecure" - "traefik.http.routers.mailcatcher.rule=Host(`mailcatcher.local.dev`)" - "traefik.http.routers.mailcatcher.tls=true" - "traefik.http.services.mailcatcher.loadbalancer.server.port=8025" meilisearch: image: getmeili/meilisearch environment: MEILI_MASTER_KEY: distware labels: - "traefik.http.routers.meilisearch.entrypoints=web,websecure" - "traefik.http.routers.meilisearch.rule=Host(`meilisearch.local.dev`)" - "traefik.http.routers.meilisearch.tls=true" - "traefik.http.services.meilisearch.loadbalancer.server.port=7700" volumes: - meilisearch-data:/meili_data minio: image: minio/minio command: minio server /data/minio --address ":9091" --console-address ":9092" environment: MINIO_ROOT_USER: distware MINIO_ROOT_PASSWORD: distware labels: - "traefik.http.routers.minio.entrypoints=web,websecure" - "traefik.http.routers.minio.rule=Host(`minio.local.dev`)" - "traefik.http.routers.minio.tls=true" - "traefik.http.services.minio.loadbalancer.server.port=9092" volumes: - minio-data:/data/minio mysql: image: mysql:8 environment: MYSQL_DATABASE: distware MYSQL_USER: distware MYSQL_PASSWORD: distware MYSQL_RANDOM_ROOT_PASSWORD: "yes" labels: - "traefik.enable=false" volumes: - mysql-data:/var/lib/mysql ngrok: command: - start - --all - --config - /etc/ngrok.yml env_file: - .env image: ngrok/ngrok labels: - "traefik.enable=false" ports: - "4040:4040" volumes: - ./ngrok.yml:/etc/ngrok.yml phpmyadmin: image: phpmyadmin:5 depends_on: - mysql environment: PMA_HOST: mysql PMA_USER: distware PMA_PASSWORD: distware labels: - "traefik.http.routers.phpmyadmin.entrypoints=web,websecure" - "traefik.http.routers.phpmyadmin.rule=Host(`phpmyadmin.local.dev`)" - "traefik.http.routers.phpmyadmin.tls=true" redis: image: redis:5-alpine labels: - "traefik.enable=false" volumes: - redis-data:/data redis-commander: image: rediscommander/redis-commander environment: REDIS_HOSTS: local:redis:6379 labels: - "traefik.http.routers.redis-commander.entrypoints=web,websecure" - "traefik.http.routers.redis-commander.rule=Host(`redis-commander.local.dev`)" - "traefik.http.routers.redis-commander.tls=true" - "traefik.http.services.redis-commander.loadbalancer.server.port=8081" traefik: image: traefik:banon command: - "--entrypoints.web.http.redirections.entryPoint.to=websecure" - "--entrypoints.web.http.redirections.entryPoint.scheme=https" labels: - "traefik.enable=false" - "traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https" ports: - "80:80" - "443:443" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - .:/certs:ro - ./traefik.yml:/etc/traefik/traefik.yml:ro - ./traefik-tls.yml:/etc/traefik/dynamic_conf/traefik-tls.yml:ro app: &app build: context: . args: FPM_POOL: pool.conf PHP_CONFIG: php.ini depends_on: - mysql - redis volumes: - .:/var/www/html web: <<: *app labels: - "traefik.http.routers.web.entrypoints=web,websecure" - "traefik.http.routers.web.rule=Host(`web.local.dev`)" - "traefik.http.routers.web.tls=true" - "traefik.http.services.web.loadbalancer.server.port=80" worker: <<: *app command: php /var/www/html/artisan horizon labels: - "traefik.enable=false" scheduler: <<: *app command: php /var/www/html/artisan schedule:work labels: - "traefik.enable=false" volumes: meilisearch-data: minio-data: mysql-data: redis-data: