x-typebot-common: &typebot-common restart: always depends_on: typebot-redis: condition: service_healthy typebot-db: condition: service_healthy typebot-minio: condition: service_healthy networks: - typebot-network env_file: .env environment: REDIS_URL: redis://typebot-redis:6379 services: typebot-db: container_name: typebot-db image: postgres:16 restart: always volumes: - ./db-data:/var/lib/postgresql/data environment: - POSTGRES_DB=typebot - POSTGRES_USER=postgres - POSTGRES_PASSWORD=typebot healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d typebot"] interval: 5s timeout: 5s retries: 10 networks: - typebot-network typebot-redis: container_name: typebot-redis image: redis:alpine restart: always command: --save 60 1 --loglevel warning healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep PONG"] start_period: 20s interval: 30s retries: 5 timeout: 3s volumes: - ./redis-data:/data networks: - typebot-network typebot-minio: container_name: typebot-minio image: minio/minio restart: always command: server /data --console-address ":9001" environment: - MINIO_ROOT_USER=minioAdmin - MINIO_ROOT_PASSWORD=G0dM!nS3cr3t2025 volumes: - ./minio-data:/data ports: - "9000:9000" - "9001:9001" networks: - typebot-network healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:9000/minio/health/live || exit 1"] interval: 30s timeout: 10s retries: 5 typebot-builder: container_name: typebot-builder <<: *typebot-common image: baptistearno/typebot-builder:latest ports: - "8080:3000" typebot-viewer: container_name: typebot-viewer <<: *typebot-common image: baptistearno/typebot-viewer:latest ports: - "8081:3000" networks: typebot-network: driver: bridge