# This compose allows to setup the whole project in the production environment services: server: image: ghcr.io/arthi-chaud/meelo-server:latest expose: - 4000 restart: on-failure depends_on: db: condition: service_healthy meilisearch: condition: service_healthy volumes: - ${DATA_DIR}:${INTERNAL_DATA_DIR} - ${CONFIG_DIR}:${INTERNAL_CONFIG_DIR} env_file: - .env environment: - TRANSCODER_URL=http://transcoder:7666 - MEILI_HOST=http://meilisearch:7700 - REDIS_HOST=redis - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:5432/${POSTGRES_DB}?schema=public healthcheck: test: ["CMD-SHELL", "wget -qO- localhost:4000"] interval: 5s timeout: 5s retries: 5 front: image: ghcr.io/arthi-chaud/meelo-front:latest expose: - 3000 depends_on: server: condition: service_healthy environment: - PUBLIC_SERVER_URL=${PUBLIC_SERVER_URL} - SSR_SERVER_URL=http://server:4000 redis: image: redis:7.0-alpine healthcheck: test: ["CMD", "redis-cli","ping"] interval: 5s timeout: 5s retries: 5 db: image: postgres:alpine3.14 healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 5 env_file: - .env volumes: - db:/var/lib/postgresql/data meilisearch: image: getmeili/meilisearch:v1.5 restart: on-failure expose: - 7700 volumes: - search:/meili_data environment: - MEILI_ENV=production - MEILI_MASTER_KEY=${MEILI_MASTER_KEY} healthcheck: test: ["CMD", "wget", "--no-verbose", "--spider", "http://0.0.0.0:7700/health"] timeout: 5s retries: 5 transcoder: image: ghcr.io/zoriya/kyoo_transcoder:master restart: on-failure cpus: 1 expose: - 7666 environment: - GOCODER_SAFE_PATH=${INTERNAL_DATA_DIR} volumes: - ${DATA_DIR}:${INTERNAL_DATA_DIR}:ro - transcoder_cache:/cache profiles: ['', 'cpu'] nginx: restart: on-failure image: nginx:1.24.0-alpine depends_on: server: condition: service_started front: condition: service_started ports: - ${PORT:-5000}:5000 environment: - PORT=5000 - FRONT_URL=http://front:3000 - SERVER_URL=http://server:4000 volumes: - ./nginx.conf.template:/etc/nginx/templates/meelo.conf.template:ro volumes: db: config: data: search: transcoder_cache: