networks: testbed-net: services: surrealdb: image: surrealdb/surrealdb:v3.0.4 command: start --auth --user root --pass root networks: - testbed-net redis: image: redis:7-alpine networks: - testbed-net postgres: image: postgres:16-alpine environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres networks: - testbed-net mailpit: image: axllent/mailpit:latest networks: - testbed-net typesense: image: typesense/typesense:27.1 environment: TYPESENSE_DATA_DIR: /data TYPESENSE_API_KEY: test networks: - testbed-net garage-s3: image: ghcr.io/deuxfleurs/garage:v2.0.0 environment: GARAGE_ALLOW_WORLD_READABLE_CONFIG: "true" networks: - testbed-net testbed: build: context: ../apps/testbed dockerfile: Dockerfile environment: SURREALDB_URL: ws://surrealdb:8000 SURREALDB_USERNAME: root SURREALDB_PASSWORD: root GARAGE_S3_ENDPOINT: http://garage-s3:3900 GARAGE_S3_ADMIN_ENDPOINT: http://garage-s3:3902 REDIS_URL: redis://redis:6379 POSTGRES_URL: postgresql://postgres:postgres@postgres:5432/postgres TYPESENSE_URL: http://typesense:8108 TYPESENSE_API_KEY: test MAILPIT_SMTP_URL: smtp://mailpit:1025 MAILPIT_API_URL: http://mailpit:8025 networks: - testbed-net depends_on: - surrealdb - redis - postgres - garage-s3 - typesense - mailpit caddy: image: caddy:2-alpine ports: - "3200:80" - "3201:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile networks: - testbed-net