services: superstreamer: image: alpine environment: - PUBLIC_API_ENDPOINT=http://localhost:52001 - PUBLIC_STITCHER_ENDPOINT=http://localhost:52002 - REDIS_HOST=redis - REDIS_PORT=6379 - DATABASE_URI=postgres://postgres:password@db:5432/sprs env_file: .kamal/secrets.development superstreamer-app: extends: superstreamer image: "superstreamerapp/app:alpha" ports: - 52000:52000 superstreamer-api: extends: superstreamer image: "superstreamerapp/api:alpha" restart: always ports: - 52001:52001 depends_on: - db - redis superstreamer-stitcher: extends: superstreamer image: "superstreamerapp/stitcher:alpha" restart: always ports: - 52002:52002 depends_on: - redis superstreamer-artisan: extends: superstreamer image: "superstreamerapp/artisan:alpha" restart: always depends_on: - redis redis: image: redis/redis-stack-server:7.2.0-v6 ports: - 127.0.0.1:6379:6379 healthcheck: test: ["CMD", "redis-cli", "--raw", "incr", "ping"] volumes: - redis_data:/data bright: image: futureporn/bright:latest container_name: bright build: context: . dockerfile: dockerfiles/bright.dockerfile working_dir: /app environment: MIX_ENV: dev PORT: "4000" DATABASE_HOSTNAME: db env_file: - .kamal/secrets.development ports: - '4000:4000' depends_on: - db volumes: - ./services/bright/lib:/app/lib develop: watch: - action: sync+restart path: ./services/bright/mix.exs target: /app db: image: postgres:15 container_name: futureporn-db environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password POSTGRES_DB: bright volumes: - pg_data:/var/lib/postgresql/data ports: - '5432:5432' pgadmin: image: dpage/pgadmin4 ports: - '5050:5050' depends_on: - db environment: PGADMIN_LISTEN_PORT: "5050" env_file: - .kamal/secrets.development volumes: pg_data: redis_data: