services: rallly_db: image: postgres:18-alpine restart: always ports: - "5450:5432" volumes: - db-data:/var/lib/postgresql environment: - POSTGRES_PASSWORD=postgres - POSTGRES_DB=rallly healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 redis: image: redis:7.4-alpine restart: always ports: - "6379:6379" volumes: - redis-data:/data healthcheck: test: ["CMD-SHELL", "redis-cli ping"] interval: 5s timeout: 5s retries: 5 serverless-redis-http: ports: - "8079:80" image: hiett/serverless-redis-http:latest environment: SRH_MODE: env SRH_TOKEN: dev_fake_token_123456789abcdefghijklmnop SRH_CONNECTION_STRING: "redis://redis:6379" garage: image: dxflrs/garage:v2.3.0 restart: always ports: - "3900:3900" - "3903:3903" volumes: - ./docker/garage.toml:/etc/garage.toml:ro - garage-meta:/var/lib/garage/meta - garage-data:/var/lib/garage/data environment: - GARAGE_DEFAULT_ACCESS_KEY=rallly-access-key - GARAGE_DEFAULT_SECRET_KEY=rallly-secret-key - GARAGE_DEFAULT_BUCKET=rallly command: /garage server --single-node --default-bucket healthcheck: test: ["CMD", "/garage", "stats", "-a"] interval: 1h timeout: 5s retries: 3 start_period: 10s start_interval: 5s mailpit: image: axllent/mailpit ports: - "8025:8025" - "1025:1025" healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8025/readyz"] interval: 5s timeout: 5s retries: 5 garage_init: image: amazon/aws-cli depends_on: garage: condition: service_healthy environment: - AWS_ACCESS_KEY_ID=rallly-access-key - AWS_SECRET_ACCESS_KEY=rallly-secret-key - AWS_DEFAULT_REGION=garage volumes: - ./docker/cors.json:/cors.json:ro entrypoint: ["sh", "-c", "aws --endpoint-url http://garage:3900 s3api put-bucket-cors --bucket rallly --cors-configuration file:///cors.json"] restart: "no" volumes: db-data: driver: local redis-data: driver: local garage-meta: driver: local garage-data: driver: local