services: app: build: context: . dockerfile: Dockerfile container_name: retrohub-app restart: unless-stopped ports: - "8080:80" volumes: - retrohub-roms:/var/www/retrohub/storage/app/roms - retrohub-saves:/var/www/retrohub/storage/app/saves - retrohub-covers:/var/www/retrohub/storage/app/covers environment: - APP_URL=${APP_URL:-http://localhost:8080} - APP_KEY=${APP_KEY} - DB_CONNECTION=pgsql - DB_HOST=db - DB_PORT=5432 - DB_DATABASE=retrohub - DB_USERNAME=retrohub - DB_PASSWORD=${DB_PASSWORD} - REDIS_HOST=redis - CACHE_DRIVER=redis - SESSION_DRIVER=redis - QUEUE_CONNECTION=redis - IGDB_CLIENT_ID=${IGDB_CLIENT_ID} - IGDB_CLIENT_SECRET=${IGDB_CLIENT_SECRET} - TGDB_API_KEY=${TGDB_API_KEY} depends_on: db: condition: service_healthy redis: condition: service_healthy db: image: pgvector/pgvector:pg16 container_name: retrohub-db restart: unless-stopped volumes: - retrohub-db:/var/lib/postgresql/data environment: - POSTGRES_DB=retrohub - POSTGRES_USER=retrohub - POSTGRES_PASSWORD=${DB_PASSWORD} healthcheck: test: ["CMD-SHELL", "pg_isready -U retrohub"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: retrohub-redis restart: unless-stopped volumes: - retrohub-redis:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 worker: build: context: . dockerfile: Dockerfile container_name: retrohub-worker restart: unless-stopped command: php artisan horizon volumes: - retrohub-roms:/var/www/retrohub/storage/app/roms - retrohub-saves:/var/www/retrohub/storage/app/saves - retrohub-covers:/var/www/retrohub/storage/app/covers environment: - APP_URL=${APP_URL:-http://localhost:8080} - APP_KEY=${APP_KEY} - DB_CONNECTION=pgsql - DB_HOST=db - DB_PORT=5432 - DB_DATABASE=retrohub - DB_USERNAME=retrohub - DB_PASSWORD=${DB_PASSWORD} - REDIS_HOST=redis - CACHE_DRIVER=redis - SESSION_DRIVER=redis - QUEUE_CONNECTION=redis - IGDB_CLIENT_ID=${IGDB_CLIENT_ID} - IGDB_CLIENT_SECRET=${IGDB_CLIENT_SECRET} - TGDB_API_KEY=${TGDB_API_KEY} depends_on: db: condition: service_healthy redis: condition: service_healthy volumes: retrohub-db: retrohub-redis: retrohub-roms: retrohub-saves: retrohub-covers: