name: webmail services: postgres: image: postgres:16 environment: POSTGRES_USER: webmail POSTGRES_PASSWORD: webmail_dev POSTGRES_DB: webmail_dev ports: ["127.0.0.1:5433:5432"] volumes: [pgdata:/var/lib/postgresql/data] healthcheck: test: ["CMD-SHELL", "pg_isready -U webmail -d webmail_dev"] interval: 5s timeout: 3s retries: 10 redis: image: redis:7 ports: ["127.0.0.1:6380:6379"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 10 meilisearch: image: getmeili/meilisearch:v1.8 environment: MEILI_MASTER_KEY: dev_master_key_change_me MEILI_ENV: development ports: ["127.0.0.1:7700:7700"] volumes: [meilidata:/meili_data] healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:7700/health | grep -q available"] interval: 5s timeout: 3s retries: 10 # Test mail servers (integration tests + manual dev against a throwaway mailbox) greenmail: image: greenmail/standalone:2.0.1 environment: GREENMAIL_OPTS: >- -Dgreenmail.setup.test.all -Dgreenmail.hostname=0.0.0.0 -Dgreenmail.users=dev:devpass@dev.local -Dgreenmail.verbose ports: - "127.0.0.1:3025:3025" # SMTP - "127.0.0.1:3143:3143" # IMAP - "127.0.0.1:3993:3993" # IMAPS volumes: pgdata: meilidata: