services: caddy: build: context: ./dockerfiles/caddy args: - APP_ENV=$APP_ENV restart: unless-stopped volumes: - .:/var/www/ - ./dockerfiles/caddy/data/config:/config - ./dockerfiles/caddy/data/data:/data ports: - 80:80 - 443:443 - 6001:6001 env_file: .env php: build: context: ./dockerfiles/php args: - WITH_XDEBUG=$DEV_XDEBUG - APP_ENV=$APP_ENV restart: unless-stopped volumes: - .:/var/www/ expose: - 9000 env_file: .env workspace: build: ./dockerfiles/workspace tty: true ports: - 3000:3000 volumes: - .:/var/www/ redis: image: redis:7.0.4-alpine3.16 restart: unless-stopped command: redis-server --save 20 1 --loglevel notice --requirepass ${REDIS_PASSWORD} ports: - 6379:6379 workers: build: ./dockerfiles/workers tty: true restart: unless-stopped working_dir: /var/www/ volumes: - .:/var/www/ soketi: restart: unless-stopped image: 'quay.io/soketi/soketi:1.4-16-alpine' expose: - 6001 # Do not expose the metrics API to the internet in a production environment # - '${SOKETI_METRICS_SERVER_PORT:-9601}:9601' env_file: .env environment: - SOKETI_DEBUG=${DEBUG} - SOKETI_DEFAULT_APP_ID=${PUSHER_APP_ID} - SOKETI_DEFAULT_APP_KEY=${PUSHER_APP_KEY} - SOKETI_DEFAULT_APP_SECRET=${PUSHER_APP_SECRET} # - SOKETI_HOST='0.0.0.0' # - SOKETI_PORT=${PUSHER_PORT} # - METRICS_SERVER_PORT=${METRICS_SERVER_PORT-9601} # - SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES=false database: image: mysql:8.0.29 restart: unless-stopped volumes: - ./dockerfiles/mysql/data:/var/lib/mysql/ ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD} MYSQL_DATABASE: ${DB_DATABASE} MYSQL_USER: ${DB_USERNAME} MYSQL_PASSWORD: ${DB_PASSWORD}