services: app: build: . image: solopm:local ports: - "8080:8080" env_file: - .env environment: DATABASE_URL: postgres://solopm:solopm@postgres:5432/solopm?sslmode=disable MEILI_URL: http://meilisearch:7700 UPLOAD_DIR: /data/uploads SMTP_HOST: ${SMTP_HOST:-mailhog} SMTP_PORT: ${SMTP_PORT:-1025} volumes: - uploads:/data/uploads depends_on: postgres: condition: service_healthy meilisearch: condition: service_healthy postgres: image: postgres:16-alpine environment: POSTGRES_USER: solopm POSTGRES_PASSWORD: solopm POSTGRES_DB: solopm volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U solopm"] interval: 5s timeout: 5s retries: 10 meilisearch: image: getmeili/meilisearch:v1.10 environment: MEILI_MASTER_KEY: ${MEILI_KEY:-} MEILI_NO_ANALYTICS: "true" volumes: - meilidata:/meili_data healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:7700/health || exit 1"] interval: 5s timeout: 5s retries: 10 mailhog: image: mailhog/mailhog profiles: ["dev"] ports: - "8025:8025" # web UI volumes: pgdata: meilidata: uploads: