services: app: image: gitea.leonmorival.com/leon-morival/bemeal-api:latest container_name: bemeal-app restart: unless-stopped depends_on: pgsql: condition: service_healthy redis: condition: service_started environment: APP_NAME: "BeMeal" APP_ENV: production APP_DEBUG: "false" APP_KEY: ${APP_KEY} APP_URL: ${APP_URL} APP_LOCALE: fr SERVER_NAME: ":80" APP_RUNTIME: "Laravel\\FrankenPHP\\Runtime" DB_CONNECTION: pgsql DB_HOST: pgsql DB_PORT: 5432 DB_DATABASE: ${DB_DATABASE} DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} REDIS_HOST: redis REDIS_CLIENT: predis QUEUE_CONNECTION: redis SCOUT_DRIVER: meilisearch MEILISEARCH_HOST: http://meilisearch:7700 MEILISEARCH_KEY: ${MEILISEARCH_KEY} volumes: - bemeal_storage:/var/www/html/storage/app - bemeal_public:/var/www/html/storage/app/public networks: - nginx - internal horizon: image: gitea.leonmorival.com/leon-morival/bemeal-api:latest container_name: bemeal-horizon restart: unless-stopped command: php artisan horizon depends_on: pgsql: condition: service_healthy redis: condition: service_started environment: APP_ENV: production APP_KEY: ${APP_KEY} DB_CONNECTION: pgsql DB_HOST: pgsql DB_PORT: 5432 DB_DATABASE: ${DB_DATABASE} DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} REDIS_HOST: redis REDIS_CLIENT: predis QUEUE_CONNECTION: redis volumes: - bemeal_storage:/var/www/html/storage/app networks: - internal pgsql: image: postgres:15-alpine container_name: bemeal-pgsql restart: unless-stopped environment: POSTGRES_DB: ${DB_DATABASE} POSTGRES_USER: ${DB_USERNAME} POSTGRES_PASSWORD: ${DB_PASSWORD} healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME} -d ${DB_DATABASE}"] interval: 5s timeout: 5s retries: 10 volumes: - bemeal_pgsql:/var/lib/postgresql/data networks: - internal redis: image: redis:alpine container_name: bemeal-redis restart: unless-stopped volumes: - bemeal_redis:/data networks: - internal meilisearch: image: getmeili/meilisearch:latest container_name: bemeal-meilisearch restart: unless-stopped environment: MEILI_NO_ANALYTICS: "true" MEILI_MASTER_KEY: ${MEILISEARCH_KEY} volumes: - bemeal_meili:/meili_data networks: - internal volumes: bemeal_pgsql: bemeal_redis: bemeal_storage: bemeal_public: bemeal_meili: networks: nginx: external: true internal: driver: bridge