Files

1 line
83 KiB
JSON

{"repo": "browserable/browserable", "files": {"deployment/docker-compose.dev.yml": {"a3af19a66560d8bc3ff2c4ed4f9570eb6a66649c": {"t": 1785745248.3311563, "n": 10013, "h": "0a3bf98888aab967", "c": "services:\n tasks:\n platform: linux/amd64\n container_name: browserable-tasks\n build: ../tasks\n volumes:\n - ../tasks/views:/tasks/views\n - ../tasks/services:/tasks/services\n - ../tasks/public:/tasks/public\n - ../tasks/routes:/tasks/routes\n - ../tasks/logic:/tasks/logic\n - ../tasks/prompts:/tasks/prompts\n - ../tasks/utils:/tasks/utils\n - ../tasks/agents:/tasks/agents\n - ../tasks/app.js:/tasks/app.js\n - ../tasks/version.js:/tasks/version.js\n - ../tasks/package.json:/tasks/package.json\n - ../tasks/files:/tasks/files\n working_dir: /tasks\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n ports:\n - \"2003:2003\"\n - \"2010:2010\"\n expose:\n - \"2003\"\n - \"2010\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2003/health\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n APP_NAME: Browserable\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n DOMAIN: localhost:2003\n ROOT_DOMAIN: localhost\n PORT: 2003\n UPPY_PORT: 2010\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n PW_TEST_SCREENSHOT_NO_FONTS_READY: 1\n PW_TEST_REUSE_CONTEXT: 1\n TASKS_DATABASE_URL: postgresql://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n TASKS_REDIS_URL: \"redis://browserable-redis:6379/\"\n MONGODB_URL: \"mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\"\n CORS_DOMAINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_CLIENT_ORIGINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_UPLOAD_URLS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_AWS_ACL: \"public-read\"\n SECRET: please-change-this-secret-key\n APP_URL: http://localhost:2001\n ADMIN_EMAIL: admin@browserable.ai\n COOKIE_UUID_KEY: browserable_uuid\n SMTP_HOST: \n SMTP_PORT: \n SMTP_USER: \n SMTP_PASS: \n SMTP_FROM:\n S3_ENDPOINT: http://minio:9000\n S3_BUCKET: browserable\n S3_KEY: browserable-storage\n S3_SECRET: secret1234\n S3_PRIVATE_DOMAIN: http://minio:9000\n S3_PUBLIC_DOMAIN: http://localhost:9000\n SINGLE_USER_MODE: 1\n DISCORD_ADMIN_WEBHOOK: \n OPENAI_API_KEY: \n CLAUDE_API_KEY: \n QWEN_API_KEY: \n GEMINI_API_KEY: \n DEEPSEEK_API_KEY: \n STEEL_API_KEY: \n HYPER_BROWSER_API_KEY:\n BROWSERBASE_API_KEY: \n BROWSERBASE_PROJECT_ID: \n BROWSER_CONCURRENCY: 4\n LOCAL_BROWSER_SERVICE_URL: http://host.docker.internal:9221\n BROWSER_WIDTH: 1920 # 1280\n BROWSER_HEIGHT: 1920 # 720\n links:\n - browserable-redis\n - browserable-mongodb\n depends_on:\n db:\n condition: service_healthy\n browserable-redis:\n condition: service_started\n browserable-mongodb:\n condition: service_started\n minio:\n condition: service_healthy\n networks:\n - shared-network\n\n ui:\n platform: linux/amd64\n container_name: browserable-ui\n build: ../ui\n volumes:\n - ../ui/assets:/ui/assets\n - ../ui/src:/ui/src\n - ../ui/tools:/ui/tools\n - ../ui/build:/ui/build\n - ../ui/package.json:/ui/package.json\n - ../ui/tsconfig.json:/ui/tsconfig.json\n - ../ui/tailwind.config.js:/ui/tailwind.config.js\n working_dir: /ui\n ports:\n - \"2001:2001\"\n expose:\n - \"2001\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2001\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n APP_NAME: Browserable\n DOMAIN: localhost:2001\n ROOT_DOMAIN: localhost\n PORT: 2001\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n REACT_APP_TASKS_PUBLIC_URL: \"http://localhost:2003\"\n REACT_APP_UPPY_COMPANION_URL: \"http://localhost:2003/companion\"\n REACT_APP_S3_ENDPOINT: nyc3.digitaloceanspaces.com\n REACT_APP_SINGLE_USER_MODE: 1\n SECRET: please-change-this-secret-key\n REACT_APP_COOKIE_UUID_KEY: browserable_uuid\n REACT_APP_LOCAL_BROWSER_SERVICE_URL: http://localhost:9221\n\n docs:\n platform: linux/amd64\n container_name: browserable-docs\n build: ../docs\n volumes:\n - ../docs:/docs\n ports:\n - \"2002:3000\"\n expose:\n - \"3000\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:3000\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n \n browserable-redis:\n image: redis:6.2.6-alpine\n container_name: browserable-redis\n ports: \n - \"6379:6379\"\n healthcheck:\n test: [\"CMD\", \"redis-cli\", \"ping\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n\n browserable-mongodb:\n image: mongo:latest\n container_name: browserable-mongodb\n restart: always\n environment:\n MONGO_INITDB_ROOT_USERNAME: mongodb\n MONGO_INITDB_ROOT_PASSWORD: mongodb\n ports:\n - \"27017:27017\"\n healthcheck:\n test: [\"CMD\", \"mongosh\", \"--eval\", \"'db.runCommand(\\\"ping\\\").ok'\", \"--quiet\"]\n interval: 10s\n timeout: 5s\n retries: 5\n volumes:\n - mongodb_data:/data/db\n networks:\n - shared-network\n\n mongo-express:\n image: mongo-express:latest\n container_name: browserable-mongo-express\n restart: always\n ports:\n - \"3300:8081\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:8081\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n ME_CONFIG_MONGODB_ADMINUSERNAME: mongodb\n ME_CONFIG_MONGODB_ADMINPASSWORD: mongodb\n ME_CONFIG_MONGODB_URL: mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\n ME_CONFIG_BASICAUTH_USERNAME: admin\n ME_CONFIG_BASICAUTH_PASSWORD: pass\n depends_on:\n browserable-mongodb:\n condition: service_healthy\n networks:\n - shared-network\n\n minio:\n image: minio/minio\n container_name: browserable-minio\n ports:\n - '9000:9000'\n - '9001:9001'\n environment:\n MINIO_ROOT_USER: browserable-storage\n MINIO_ROOT_PASSWORD: secret1234\n command: server --console-address \":9001\" /data\n healthcheck:\n test: [ \"CMD\", \"curl\", \"-f\", \"http://localhost:9000/minio/health/live\" ]\n interval: 2s\n timeout: 10s\n retries: 5\n volumes:\n - minio_data:/data\n networks:\n - shared-network\n\n minio-createbucket:\n image: minio/mc\n container_name: browserable-minio-setup\n depends_on:\n minio:\n condition: service_healthy\n entrypoint: >\n /bin/sh -c \"\n /usr/bin/mc alias set browserable-minio http://minio:9000 browserable-storage secret1234;\n /usr/bin/mc mb browserable-minio/browserable;\n /usr/bin/mc anonymous set public browserable-minio/browserable;\n /usr/bin/mc admin user add browserable-minio browserable-s3-user browserable-s3-password;\n /usr/bin/mc admin policy attach browserable-minio readwrite --user browserable-s3-user;\n exit 0;\n \"\n networks:\n - shared-network\n\n pgadmin:\n container_name: browserable-pgadmin\n image: dpage/pgadmin4:latest\n environment:\n PGADMIN_DEFAULT_EMAIL: admin@browserable.ai\n PGADMIN_DEFAULT_PASSWORD: admin\n PGADMIN_CONFIG_SERVER_MODE: 'False'\n ports:\n - \"5050:80\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:80/misc/ping\"]\n interval: 10s\n timeout: 5s\n retries: 5\n depends_on:\n db:\n condition: service_healthy\n networks:\n - shared-network\n\n db:\n container_name: supabase-db\n image: supabase/postgres:15.8.1.060\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/db/realtime.sql:/docker-entrypoint-initdb.d/migrations/99-realtime.sql:Z\n - ./supabase-docker/volumes/db/webhooks.sql:/docker-entrypoint-initdb.d/init-scripts/98-webhooks.sql:Z\n - ./supabase-docker/volumes/db/roles.sql:/docker-entrypoint-initdb.d/init-scripts/99-roles.sql:Z\n - ./supabase-docker/volumes/db/jwt.sql:/docker-entrypoint-initdb.d/init-scripts/99-jwt.sql:Z\n - ./supabase-docker/volumes/db/data:/var/lib/postgresql/data:Z\n - ./supabase-docker/volumes/db/_supabase.sql:/docker-entrypoint-initdb.d/migrations/97-_supabase.sql:Z\n - ./supabase-docker/volumes/db/logs.sql:/docker-entrypoint-initdb.d/migrations/99-logs.sql:Z\n - ./supabase-docker/volumes/db/pooler.sql:/docker-entrypoint-initdb.d/migrations/99-pooler.sql:Z\n - ./browserable.sql:/docker-entrypoint-initdb.d/browserable.sql\n - db-config:/etc/postgresql-custom\n - postgresdb:/var/lib/postgresql/data:Z\n healthcheck:\n test: [\"CMD\", \"pg_isready\", \"-U\", \"postgres\", \"-h\", \"localhost\"]\n interval: 5s\n timeout: 5s\n retries: 10\n environment:\n POSTGRES_HOST: /var/run/postgresql\n PGPORT: ${POSTGRES_PORT}\n POSTGRES_PORT: ${POSTGRES_PORT}\n PGPASSWORD: ${POSTGRES_PASSWORD}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n PGDATABASE: ${POSTGRES_DB}\n POSTGRES_DB: ${POSTGRES_DB}\n JWT_SECRET: ${JWT_SECRET}\n JWT_EXP: ${JWT_EXPIRY}\n command: [\"postgres\", \"-c\", \"config_file=/etc/postgresql/postgresql.conf\", \"-c\", \"log_min_messages=fatal\"]\n networks:\n - shared-network\n\nnetworks:\n shared-network:\n driver: bridge\n\nvolumes:\n mongodb_data:\n driver: local\n db-config:\n driver: local\n minio_data:\n driver: local\n postgresdb:\n driver: local"}, "c3e8e57b6b8dbf925f774fdb041fe2f5483eebca": {"t": 1785749236.6333783, "n": 10013, "h": "0a3bf98888aab967", "c": "services:\n tasks:\n platform: linux/amd64\n container_name: browserable-tasks\n build: ../tasks\n volumes:\n - ../tasks/views:/tasks/views\n - ../tasks/services:/tasks/services\n - ../tasks/public:/tasks/public\n - ../tasks/routes:/tasks/routes\n - ../tasks/logic:/tasks/logic\n - ../tasks/prompts:/tasks/prompts\n - ../tasks/utils:/tasks/utils\n - ../tasks/agents:/tasks/agents\n - ../tasks/app.js:/tasks/app.js\n - ../tasks/version.js:/tasks/version.js\n - ../tasks/package.json:/tasks/package.json\n - ../tasks/files:/tasks/files\n working_dir: /tasks\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n ports:\n - \"2003:2003\"\n - \"2010:2010\"\n expose:\n - \"2003\"\n - \"2010\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2003/health\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n APP_NAME: Browserable\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n DOMAIN: localhost:2003\n ROOT_DOMAIN: localhost\n PORT: 2003\n UPPY_PORT: 2010\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n PW_TEST_SCREENSHOT_NO_FONTS_READY: 1\n PW_TEST_REUSE_CONTEXT: 1\n TASKS_DATABASE_URL: postgresql://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n TASKS_REDIS_URL: \"redis://browserable-redis:6379/\"\n MONGODB_URL: \"mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\"\n CORS_DOMAINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_CLIENT_ORIGINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_UPLOAD_URLS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_AWS_ACL: \"public-read\"\n SECRET: please-change-this-secret-key\n APP_URL: http://localhost:2001\n ADMIN_EMAIL: admin@browserable.ai\n COOKIE_UUID_KEY: browserable_uuid\n SMTP_HOST: \n SMTP_PORT: \n SMTP_USER: \n SMTP_PASS: \n SMTP_FROM:\n S3_ENDPOINT: http://minio:9000\n S3_BUCKET: browserable\n S3_KEY: browserable-storage\n S3_SECRET: secret1234\n S3_PRIVATE_DOMAIN: http://minio:9000\n S3_PUBLIC_DOMAIN: http://localhost:9000\n SINGLE_USER_MODE: 1\n DISCORD_ADMIN_WEBHOOK: \n OPENAI_API_KEY: \n CLAUDE_API_KEY: \n QWEN_API_KEY: \n GEMINI_API_KEY: \n DEEPSEEK_API_KEY: \n STEEL_API_KEY: \n HYPER_BROWSER_API_KEY:\n BROWSERBASE_API_KEY: \n BROWSERBASE_PROJECT_ID: \n BROWSER_CONCURRENCY: 4\n LOCAL_BROWSER_SERVICE_URL: http://host.docker.internal:9221\n BROWSER_WIDTH: 1920 # 1280\n BROWSER_HEIGHT: 1920 # 720\n links:\n - browserable-redis\n - browserable-mongodb\n depends_on:\n db:\n condition: service_healthy\n browserable-redis:\n condition: service_started\n browserable-mongodb:\n condition: service_started\n minio:\n condition: service_healthy\n networks:\n - shared-network\n\n ui:\n platform: linux/amd64\n container_name: browserable-ui\n build: ../ui\n volumes:\n - ../ui/assets:/ui/assets\n - ../ui/src:/ui/src\n - ../ui/tools:/ui/tools\n - ../ui/build:/ui/build\n - ../ui/package.json:/ui/package.json\n - ../ui/tsconfig.json:/ui/tsconfig.json\n - ../ui/tailwind.config.js:/ui/tailwind.config.js\n working_dir: /ui\n ports:\n - \"2001:2001\"\n expose:\n - \"2001\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2001\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n APP_NAME: Browserable\n DOMAIN: localhost:2001\n ROOT_DOMAIN: localhost\n PORT: 2001\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n REACT_APP_TASKS_PUBLIC_URL: \"http://localhost:2003\"\n REACT_APP_UPPY_COMPANION_URL: \"http://localhost:2003/companion\"\n REACT_APP_S3_ENDPOINT: nyc3.digitaloceanspaces.com\n REACT_APP_SINGLE_USER_MODE: 1\n SECRET: please-change-this-secret-key\n REACT_APP_COOKIE_UUID_KEY: browserable_uuid\n REACT_APP_LOCAL_BROWSER_SERVICE_URL: http://localhost:9221\n\n docs:\n platform: linux/amd64\n container_name: browserable-docs\n build: ../docs\n volumes:\n - ../docs:/docs\n ports:\n - \"2002:3000\"\n expose:\n - \"3000\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:3000\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n \n browserable-redis:\n image: redis:6.2.6-alpine\n container_name: browserable-redis\n ports: \n - \"6379:6379\"\n healthcheck:\n test: [\"CMD\", \"redis-cli\", \"ping\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n\n browserable-mongodb:\n image: mongo:latest\n container_name: browserable-mongodb\n restart: always\n environment:\n MONGO_INITDB_ROOT_USERNAME: mongodb\n MONGO_INITDB_ROOT_PASSWORD: mongodb\n ports:\n - \"27017:27017\"\n healthcheck:\n test: [\"CMD\", \"mongosh\", \"--eval\", \"'db.runCommand(\\\"ping\\\").ok'\", \"--quiet\"]\n interval: 10s\n timeout: 5s\n retries: 5\n volumes:\n - mongodb_data:/data/db\n networks:\n - shared-network\n\n mongo-express:\n image: mongo-express:latest\n container_name: browserable-mongo-express\n restart: always\n ports:\n - \"3300:8081\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:8081\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n ME_CONFIG_MONGODB_ADMINUSERNAME: mongodb\n ME_CONFIG_MONGODB_ADMINPASSWORD: mongodb\n ME_CONFIG_MONGODB_URL: mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\n ME_CONFIG_BASICAUTH_USERNAME: admin\n ME_CONFIG_BASICAUTH_PASSWORD: pass\n depends_on:\n browserable-mongodb:\n condition: service_healthy\n networks:\n - shared-network\n\n minio:\n image: minio/minio\n container_name: browserable-minio\n ports:\n - '9000:9000'\n - '9001:9001'\n environment:\n MINIO_ROOT_USER: browserable-storage\n MINIO_ROOT_PASSWORD: secret1234\n command: server --console-address \":9001\" /data\n healthcheck:\n test: [ \"CMD\", \"curl\", \"-f\", \"http://localhost:9000/minio/health/live\" ]\n interval: 2s\n timeout: 10s\n retries: 5\n volumes:\n - minio_data:/data\n networks:\n - shared-network\n\n minio-createbucket:\n image: minio/mc\n container_name: browserable-minio-setup\n depends_on:\n minio:\n condition: service_healthy\n entrypoint: >\n /bin/sh -c \"\n /usr/bin/mc alias set browserable-minio http://minio:9000 browserable-storage secret1234;\n /usr/bin/mc mb browserable-minio/browserable;\n /usr/bin/mc anonymous set public browserable-minio/browserable;\n /usr/bin/mc admin user add browserable-minio browserable-s3-user browserable-s3-password;\n /usr/bin/mc admin policy attach browserable-minio readwrite --user browserable-s3-user;\n exit 0;\n \"\n networks:\n - shared-network\n\n pgadmin:\n container_name: browserable-pgadmin\n image: dpage/pgadmin4:latest\n environment:\n PGADMIN_DEFAULT_EMAIL: admin@browserable.ai\n PGADMIN_DEFAULT_PASSWORD: admin\n PGADMIN_CONFIG_SERVER_MODE: 'False'\n ports:\n - \"5050:80\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:80/misc/ping\"]\n interval: 10s\n timeout: 5s\n retries: 5\n depends_on:\n db:\n condition: service_healthy\n networks:\n - shared-network\n\n db:\n container_name: supabase-db\n image: supabase/postgres:15.8.1.060\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/db/realtime.sql:/docker-entrypoint-initdb.d/migrations/99-realtime.sql:Z\n - ./supabase-docker/volumes/db/webhooks.sql:/docker-entrypoint-initdb.d/init-scripts/98-webhooks.sql:Z\n - ./supabase-docker/volumes/db/roles.sql:/docker-entrypoint-initdb.d/init-scripts/99-roles.sql:Z\n - ./supabase-docker/volumes/db/jwt.sql:/docker-entrypoint-initdb.d/init-scripts/99-jwt.sql:Z\n - ./supabase-docker/volumes/db/data:/var/lib/postgresql/data:Z\n - ./supabase-docker/volumes/db/_supabase.sql:/docker-entrypoint-initdb.d/migrations/97-_supabase.sql:Z\n - ./supabase-docker/volumes/db/logs.sql:/docker-entrypoint-initdb.d/migrations/99-logs.sql:Z\n - ./supabase-docker/volumes/db/pooler.sql:/docker-entrypoint-initdb.d/migrations/99-pooler.sql:Z\n - ./browserable.sql:/docker-entrypoint-initdb.d/browserable.sql\n - db-config:/etc/postgresql-custom\n - postgresdb:/var/lib/postgresql/data:Z\n healthcheck:\n test: [\"CMD\", \"pg_isready\", \"-U\", \"postgres\", \"-h\", \"localhost\"]\n interval: 5s\n timeout: 5s\n retries: 10\n environment:\n POSTGRES_HOST: /var/run/postgresql\n PGPORT: ${POSTGRES_PORT}\n POSTGRES_PORT: ${POSTGRES_PORT}\n PGPASSWORD: ${POSTGRES_PASSWORD}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n PGDATABASE: ${POSTGRES_DB}\n POSTGRES_DB: ${POSTGRES_DB}\n JWT_SECRET: ${JWT_SECRET}\n JWT_EXP: ${JWT_EXPIRY}\n command: [\"postgres\", \"-c\", \"config_file=/etc/postgresql/postgresql.conf\", \"-c\", \"log_min_messages=fatal\"]\n networks:\n - shared-network\n\nnetworks:\n shared-network:\n driver: bridge\n\nvolumes:\n mongodb_data:\n driver: local\n db-config:\n driver: local\n minio_data:\n driver: local\n postgresdb:\n driver: local"}, "3b07de9c0866e8888585c98ac78f03b09d189f31": {"t": 1785749237.704575, "n": 9480, "h": "3ed29b11797b84db", "c": "services:\n tasks:\n platform: linux/amd64\n container_name: browserable-tasks\n build: ../tasks\n volumes:\n - ../tasks/views:/tasks/views\n - ../tasks/services:/tasks/services\n - ../tasks/public:/tasks/public\n - ../tasks/routes:/tasks/routes\n - ../tasks/logic:/tasks/logic\n - ../tasks/prompts:/tasks/prompts\n - ../tasks/utils:/tasks/utils\n - ../tasks/agents:/tasks/agents\n - ../tasks/app.js:/tasks/app.js\n - ../tasks/version.js:/tasks/version.js\n - ../tasks/package.json:/tasks/package.json\n - ../tasks/files:/tasks/files\n working_dir: /tasks\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n ports:\n - \"2003:2003\"\n - \"2010:2010\"\n expose:\n - \"2003\"\n - \"2010\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2003/health\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n APP_NAME: Browserable\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n DOMAIN: localhost:2003\n ROOT_DOMAIN: localhost\n PORT: 2003\n UPPY_PORT: 2010\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n PW_TEST_SCREENSHOT_NO_FONTS_READY: 1\n PW_TEST_REUSE_CONTEXT: 1\n TASKS_DATABASE_URL: postgresql://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n TASKS_REDIS_URL: \"redis://browserable-redis:6379/\"\n MONGODB_URL: \"mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\"\n CORS_DOMAINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_CLIENT_ORIGINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_UPLOAD_URLS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_AWS_ACL: \"public-read\"\n SECRET: please-change-this-secret-key\n APP_URL: http://localhost:2001\n ADMIN_EMAIL: admin@browserable.ai\n COOKIE_UUID_KEY: browserable_uuid\n SMTP_HOST: \n SMTP_PORT: \n SMTP_USER: \n SMTP_PASS: \n SMTP_FROM:\n S3_ENDPOINT: http://minio:9000\n S3_BUCKET: browserable\n S3_KEY: browserable-storage\n S3_SECRET: secret1234\n S3_PRIVATE_DOMAIN: http://minio:9000\n S3_PUBLIC_DOMAIN: http://localhost:9000\n SINGLE_USER_MODE: 1\n DISCORD_ADMIN_WEBHOOK: \n OPENAI_API_KEY: \n CLAUDE_API_KEY: \n QWEN_API_KEY: \n GEMINI_API_KEY: \n DEEPSEEK_API_KEY: \n STEEL_API_KEY: \n HYPER_BROWSER_API_KEY:\n BROWSERBASE_API_KEY: \n BROWSERBASE_PROJECT_ID: \n BROWSER_CONCURRENCY: 4\n LOCAL_BROWSER_SERVICE_URL: http://host.docker.internal:9221\n BROWSER_WIDTH: 1920 # 1280\n BROWSER_HEIGHT: 1920 # 720\n links:\n - browserable-redis\n - browserable-mongodb\n depends_on:\n db:\n condition: service_healthy\n browserable-redis:\n condition: service_started\n browserable-mongodb:\n condition: service_started\n minio:\n condition: service_healthy\n networks:\n - shared-network\n\n ui:\n platform: linux/amd64\n container_name: browserable-ui\n build: ../ui\n volumes:\n - ../ui/assets:/ui/assets\n - ../ui/src:/ui/src\n - ../ui/tools:/ui/tools\n - ../ui/build:/ui/build\n - ../ui/package.json:/ui/package.json\n - ../ui/tsconfig.json:/ui/tsconfig.json\n - ../ui/tailwind.config.js:/ui/tailwind.config.js\n working_dir: /ui\n ports:\n - \"2001:2001\"\n expose:\n - \"2001\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2001\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n APP_NAME: Browserable\n DOMAIN: localhost:2001\n ROOT_DOMAIN: localhost\n PORT: 2001\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n REACT_APP_TASKS_PUBLIC_URL: \"http://localhost:2003\"\n REACT_APP_UPPY_COMPANION_URL: \"http://localhost:2003/companion\"\n REACT_APP_S3_ENDPOINT: nyc3.digitaloceanspaces.com\n REACT_APP_SINGLE_USER_MODE: 1\n SECRET: please-change-this-secret-key\n REACT_APP_COOKIE_UUID_KEY: browserable_uuid\n REACT_APP_LOCAL_BROWSER_SERVICE_URL: http://localhost:9221\n\n docs:\n platform: linux/amd64\n container_name: browserable-docs\n build: ../docs\n volumes:\n - ../docs:/docs\n ports:\n - \"2002:3000\"\n expose:\n - \"3000\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:3000\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n \n browserable-redis:\n image: redis:6.2.6-alpine\n container_name: browserable-redis\n ports: \n - \"6379:6379\"\n healthcheck:\n test: [\"CMD\", \"redis-cli\", \"ping\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n\n browserable-mongodb:\n image: mongo:latest\n container_name: browserable-mongodb\n restart: always\n environment:\n MONGO_INITDB_ROOT_USERNAME: mongodb\n MONGO_INITDB_ROOT_PASSWORD: mongodb\n ports:\n - \"27017:27017\"\n healthcheck:\n test: [\"CMD\", \"mongosh\", \"--eval\", \"'db.runCommand(\\\"ping\\\").ok'\", \"--quiet\"]\n interval: 10s\n timeout: 5s\n retries: 5\n volumes:\n - mongodb_data:/data/db\n networks:\n - shared-network\n\n mongo-express:\n image: mongo-express:latest\n container_name: browserable-mongo-express\n restart: always\n ports:\n - \"3300:8081\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:8081\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n ME_CONFIG_MONGODB_ADMINUSERNAME: mongodb\n ME_CONFIG_MONGODB_ADMINPASSWORD: mongodb\n ME_CONFIG_MONGODB_URL: mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\n ME_CONFIG_BASICAUTH_USERNAME: admin\n ME_CONFIG_BASICAUTH_PASSWORD: pass\n depends_on:\n browserable-mongodb:\n condition: service_healthy\n networks:\n - shared-network\n\n minio:\n image: minio/minio\n container_name: browserable-minio\n ports:\n - '9000:9000'\n - '9001:9001'\n environment:\n MINIO_ROOT_USER: browserable-storage\n MINIO_ROOT_PASSWORD: secret1234\n command: server --console-address \":9001\" /data\n healthcheck:\n test: [ \"CMD\", \"curl\", \"-f\", \"http://localhost:9000/minio/health/live\" ]\n interval: 2s\n timeout: 10s\n retries: 5\n volumes:\n - minio_data:/data\n networks:\n - shared-network\n\n minio-createbucket:\n image: minio/mc\n container_name: browserable-minio-setup\n depends_on:\n minio:\n condition: service_healthy\n entrypoint: >\n /bin/sh -c \"\n /usr/bin/mc alias set browserable-minio http://minio:9000 browserable-storage secret1234;\n /usr/bin/mc mb browserable-minio/browserable;\n /usr/bin/mc anonymous set public browserable-minio/browserable;\n /usr/bin/mc admin user add browserable-minio browserable-s3-user browserable-s3-password;\n /usr/bin/mc admin policy attach browserable-minio readwrite --user browserable-s3-user;\n exit 0;\n \"\n networks:\n - shared-network\n\n db:\n container_name: supabase-db\n image: supabase/postgres:15.8.1.060\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/db/realtime.sql:/docker-entrypoint-initdb.d/migrations/99-realtime.sql:Z\n - ./supabase-docker/volumes/db/webhooks.sql:/docker-entrypoint-initdb.d/init-scripts/98-webhooks.sql:Z\n - ./supabase-docker/volumes/db/roles.sql:/docker-entrypoint-initdb.d/init-scripts/99-roles.sql:Z\n - ./supabase-docker/volumes/db/jwt.sql:/docker-entrypoint-initdb.d/init-scripts/99-jwt.sql:Z\n - ./supabase-docker/volumes/db/data:/var/lib/postgresql/data:Z\n - ./supabase-docker/volumes/db/_supabase.sql:/docker-entrypoint-initdb.d/migrations/97-_supabase.sql:Z\n - ./supabase-docker/volumes/db/logs.sql:/docker-entrypoint-initdb.d/migrations/99-logs.sql:Z\n - ./supabase-docker/volumes/db/pooler.sql:/docker-entrypoint-initdb.d/migrations/99-pooler.sql:Z\n - ./browserable.sql:/docker-entrypoint-initdb.d/browserable.sql\n - db-config:/etc/postgresql-custom\n - postgresdb:/var/lib/postgresql/data:Z\n healthcheck:\n test: [\"CMD\", \"pg_isready\", \"-U\", \"postgres\", \"-h\", \"localhost\"]\n interval: 5s\n timeout: 5s\n retries: 10\n environment:\n POSTGRES_HOST: /var/run/postgresql\n PGPORT: ${POSTGRES_PORT}\n POSTGRES_PORT: ${POSTGRES_PORT}\n PGPASSWORD: ${POSTGRES_PASSWORD}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n PGDATABASE: ${POSTGRES_DB}\n POSTGRES_DB: ${POSTGRES_DB}\n JWT_SECRET: ${JWT_SECRET}\n JWT_EXP: ${JWT_EXPIRY}\n command: [\"postgres\", \"-c\", \"config_file=/etc/postgresql/postgresql.conf\", \"-c\", \"log_min_messages=fatal\"]\n networks:\n - shared-network\n\nnetworks:\n shared-network:\n driver: bridge\n\nvolumes:\n mongodb_data:\n driver: local\n db-config:\n driver: local\n minio_data:\n driver: local\n postgresdb:\n driver: local"}, "95179f02994c580ff304e241ea1f4d1fe1520326": {"t": 1785749239.8522909, "n": 9222, "h": "e06d6fdcf7451d2d", "c": "services:\n tasks:\n platform: linux/amd64\n container_name: browserable-tasks\n build: ../tasks\n volumes:\n - ../tasks/views:/tasks/views\n - ../tasks/services:/tasks/services\n - ../tasks/public:/tasks/public\n - ../tasks/routes:/tasks/routes\n - ../tasks/logic:/tasks/logic\n - ../tasks/prompts:/tasks/prompts\n - ../tasks/utils:/tasks/utils\n - ../tasks/agents:/tasks/agents\n - ../tasks/app.js:/tasks/app.js\n - ../tasks/version.js:/tasks/version.js\n - ../tasks/package.json:/tasks/package.json\n - ../tasks/files:/tasks/files\n working_dir: /tasks\n ports:\n - \"2003:2003\"\n - \"2010:2010\"\n expose:\n - \"2003\"\n - \"2010\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2003/health\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n APP_NAME: Browserable\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n DOMAIN: localhost:2003\n ROOT_DOMAIN: localhost\n PORT: 2003\n UPPY_PORT: 2010\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n PW_TEST_SCREENSHOT_NO_FONTS_READY: 1\n PW_TEST_REUSE_CONTEXT: 1\n TASKS_DATABASE_URL: postgresql://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n TASKS_REDIS_URL: \"redis://browserable-redis:6379/\"\n MONGODB_URL: \"mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\"\n CORS_DOMAINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_CLIENT_ORIGINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_UPLOAD_URLS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_AWS_ACL: \"public-read\"\n SECRET: please-change-this-secret-key\n APP_URL: http://localhost:2001\n ADMIN_EMAIL: admin@browserable.ai\n COOKIE_UUID_KEY: browserable_uuid\n SMTP_HOST: \n SMTP_PORT: \n SMTP_USER: \n SMTP_PASS: \n SMTP_FROM:\n S3_ENDPOINT: http://minio:9000\n S3_BUCKET: browserable\n S3_KEY: browserable-storage\n S3_SECRET: secret1234\n S3_PRIVATE_DOMAIN: http://minio:9000\n S3_PUBLIC_DOMAIN: http://localhost:9000\n SINGLE_USER_MODE: 1\n DISCORD_ADMIN_WEBHOOK: \n OPENAI_API_KEY: \n CLAUDE_API_KEY: \n QWEN_API_KEY: \n GEMINI_API_KEY: \n DEEPSEEK_API_KEY: \n STEEL_API_KEY: \n HYPER_BROWSER_API_KEY:\n BROWSERBASE_API_KEY: \n BROWSERBASE_PROJECT_ID: \n BROWSER_CONCURRENCY: 1\n links:\n - browserable-redis\n - browserable-mongodb\n depends_on:\n db:\n condition: service_healthy\n browserable-redis:\n condition: service_started\n browserable-mongodb:\n condition: service_started\n minio:\n condition: service_healthy\n networks:\n - shared-network\n\n ui:\n platform: linux/amd64\n container_name: browserable-ui\n build: ../ui\n volumes:\n - ../ui/assets:/ui/assets\n - ../ui/src:/ui/src\n - ../ui/tools:/ui/tools\n - ../ui/build:/ui/build\n - ../ui/package.json:/ui/package.json\n - ../ui/tsconfig.json:/ui/tsconfig.json\n - ../ui/tailwind.config.js:/ui/tailwind.config.js\n working_dir: /ui\n ports:\n - \"2001:2001\"\n expose:\n - \"2001\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2001\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n APP_NAME: Browserable\n DOMAIN: localhost:2001\n ROOT_DOMAIN: localhost\n PORT: 2001\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n REACT_APP_TASKS_PUBLIC_URL: \"http://localhost:2003\"\n REACT_APP_UPPY_COMPANION_URL: \"http://localhost:2003/companion\"\n REACT_APP_S3_ENDPOINT: nyc3.digitaloceanspaces.com\n REACT_APP_SINGLE_USER_MODE: 1\n SECRET: please-change-this-secret-key\n REACT_APP_COOKIE_UUID_KEY: browserable_uuid\n\n docs:\n platform: linux/amd64\n container_name: browserable-docs\n build: ../docs\n volumes:\n - ../docs:/docs\n ports:\n - \"2002:3000\"\n expose:\n - \"3000\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:3000\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n \n browserable-redis:\n image: redis:6.2.6-alpine\n container_name: browserable-redis\n ports: \n - \"6379:6379\"\n healthcheck:\n test: [\"CMD\", \"redis-cli\", \"ping\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n\n browserable-mongodb:\n image: mongo:latest\n container_name: browserable-mongodb\n restart: always\n environment:\n MONGO_INITDB_ROOT_USERNAME: mongodb\n MONGO_INITDB_ROOT_PASSWORD: mongodb\n ports:\n - \"27017:27017\"\n healthcheck:\n test: [\"CMD\", \"mongosh\", \"--eval\", \"'db.runCommand(\\\"ping\\\").ok'\", \"--quiet\"]\n interval: 10s\n timeout: 5s\n retries: 5\n volumes:\n - mongodb_data:/data/db\n networks:\n - shared-network\n\n mongo-express:\n image: mongo-express:latest\n container_name: browserable-mongo-express\n restart: always\n ports:\n - \"3300:8081\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:8081\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n ME_CONFIG_MONGODB_ADMINUSERNAME: mongodb\n ME_CONFIG_MONGODB_ADMINPASSWORD: mongodb\n ME_CONFIG_MONGODB_URL: mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\n ME_CONFIG_BASICAUTH_USERNAME: admin\n ME_CONFIG_BASICAUTH_PASSWORD: pass\n depends_on:\n browserable-mongodb:\n condition: service_healthy\n networks:\n - shared-network\n\n minio:\n image: minio/minio\n container_name: browserable-minio\n ports:\n - '9000:9000'\n - '9001:9001'\n environment:\n MINIO_ROOT_USER: browserable-storage\n MINIO_ROOT_PASSWORD: secret1234\n command: server --console-address \":9001\" /data\n healthcheck:\n test: [ \"CMD\", \"curl\", \"-f\", \"http://localhost:9000/minio/health/live\" ]\n interval: 2s\n timeout: 10s\n retries: 5\n volumes:\n - minio_data:/data\n networks:\n - shared-network\n\n minio-createbucket:\n image: minio/mc\n container_name: browserable-minio-setup\n depends_on:\n minio:\n condition: service_healthy\n entrypoint: >\n /bin/sh -c \"\n /usr/bin/mc alias set browserable-minio http://minio:9000 browserable-storage secret1234;\n /usr/bin/mc mb browserable-minio/browserable;\n /usr/bin/mc anonymous set public browserable-minio/browserable;\n /usr/bin/mc admin user add browserable-minio browserable-s3-user browserable-s3-password;\n /usr/bin/mc admin policy attach browserable-minio readwrite --user browserable-s3-user;\n exit 0;\n \"\n networks:\n - shared-network\n\n db:\n container_name: supabase-db\n image: supabase/postgres:15.8.1.060\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/db/realtime.sql:/docker-entrypoint-initdb.d/migrations/99-realtime.sql:Z\n - ./supabase-docker/volumes/db/webhooks.sql:/docker-entrypoint-initdb.d/init-scripts/98-webhooks.sql:Z\n - ./supabase-docker/volumes/db/roles.sql:/docker-entrypoint-initdb.d/init-scripts/99-roles.sql:Z\n - ./supabase-docker/volumes/db/jwt.sql:/docker-entrypoint-initdb.d/init-scripts/99-jwt.sql:Z\n - ./supabase-docker/volumes/db/data:/var/lib/postgresql/data:Z\n - ./supabase-docker/volumes/db/_supabase.sql:/docker-entrypoint-initdb.d/migrations/97-_supabase.sql:Z\n - ./supabase-docker/volumes/db/logs.sql:/docker-entrypoint-initdb.d/migrations/99-logs.sql:Z\n - ./supabase-docker/volumes/db/pooler.sql:/docker-entrypoint-initdb.d/migrations/99-pooler.sql:Z\n - ./browserable.sql:/docker-entrypoint-initdb.d/browserable.sql\n - db-config:/etc/postgresql-custom\n - postgresdb:/var/lib/postgresql/data:Z\n healthcheck:\n test: [\"CMD\", \"pg_isready\", \"-U\", \"postgres\", \"-h\", \"localhost\"]\n interval: 5s\n timeout: 5s\n retries: 10\n environment:\n POSTGRES_HOST: /var/run/postgresql\n PGPORT: ${POSTGRES_PORT}\n POSTGRES_PORT: ${POSTGRES_PORT}\n PGPASSWORD: ${POSTGRES_PASSWORD}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n PGDATABASE: ${POSTGRES_DB}\n POSTGRES_DB: ${POSTGRES_DB}\n JWT_SECRET: ${JWT_SECRET}\n JWT_EXP: ${JWT_EXPIRY}\n command: [\"postgres\", \"-c\", \"config_file=/etc/postgresql/postgresql.conf\", \"-c\", \"log_min_messages=fatal\"]\n networks:\n - shared-network\n\nnetworks:\n shared-network:\n driver: bridge\n\nvolumes:\n mongodb_data:\n driver: local\n db-config:\n driver: local\n minio_data:\n driver: local\n postgresdb:\n driver: local"}, "52c6e4c3a44ea2c97ce05aeaab11fda4b0b0d4fd": {"t": 1785749240.9882815, "n": 20950, "h": "7b836dcf2df10ff1", "c": "services:\n tasks:\n platform: linux/amd64\n container_name: browserable-tasks\n build: ../tasks\n volumes:\n - ../tasks/views:/tasks/views\n - ../tasks/services:/tasks/services\n - ../tasks/public:/tasks/public\n - ../tasks/routes:/tasks/routes\n - ../tasks/logic:/tasks/logic\n - ../tasks/prompts:/tasks/prompts\n - ../tasks/utils:/tasks/utils\n - ../tasks/agents:/tasks/agents\n - ../tasks/app.js:/tasks/app.js\n - ../tasks/version.js:/tasks/version.js\n - ../tasks/package.json:/tasks/package.json\n - ../tasks/files:/tasks/files\n working_dir: /tasks\n ports:\n - \"2003:2003\"\n - \"2010:2010\"\n expose:\n - \"2003\"\n - \"2010\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2003/health\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n APP_NAME: Browserable\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n DOMAIN: localhost:2003\n ROOT_DOMAIN: localhost\n PORT: 2003\n UPPY_PORT: 2010\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n PW_TEST_SCREENSHOT_NO_FONTS_READY: 1\n PW_TEST_REUSE_CONTEXT: 1\n TASKS_DATABASE_URL: postgresql://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n TASKS_REDIS_URL: \"redis://browserable-redis:6379/\"\n MONGODB_URL: \"mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\"\n CORS_DOMAINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_CLIENT_ORIGINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_UPLOAD_URLS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_AWS_ACL: \"public-read\"\n SECRET: please-change-this-secret-key\n APP_URL: http://localhost:2001\n ADMIN_EMAIL: admin@browserable.ai\n COOKIE_UUID_KEY: browserable_uuid\n SMTP_HOST: \n SMTP_PORT: \n SMTP_USER: \n SMTP_PASS: \n SMTP_FROM:\n S3_ENDPOINT: http://minio:9000\n S3_BUCKET: browserable\n S3_KEY: browserable-storage\n S3_SECRET: secret1234\n S3_PRIVATE_DOMAIN: http://minio:9000\n S3_PUBLIC_DOMAIN: http://localhost:9000\n SINGLE_USER_MODE: 1\n DISCORD_ADMIN_WEBHOOK: \n OPENAI_API_KEY: \n CLAUDE_API_KEY: \n QWEN_API_KEY: \n GEMINI_API_KEY: \n DEEPSEEK_API_KEY: \n STEEL_API_KEY: \n HYPER_BROWSER_API_KEY:\n BROWSERBASE_API_KEY: \n BROWSERBASE_PROJECT_ID: \n BROWSER_CONCURRENCY: 1\n links:\n - browserable-redis\n - browserable-mongodb\n - supavisor\n depends_on:\n db:\n condition: service_healthy\n supavisor:\n condition: service_healthy\n browserable-redis:\n condition: service_started\n browserable-mongodb:\n condition: service_started\n minio:\n condition: service_healthy\n networks:\n - shared-network\n\n ui:\n platform: linux/amd64\n container_name: browserable-ui\n build: ../ui\n volumes:\n - ../ui/assets:/ui/assets\n - ../ui/src:/ui/src\n - ../ui/tools:/ui/tools\n - ../ui/build:/ui/build\n - ../ui/package.json:/ui/package.json\n - ../ui/tsconfig.json:/ui/tsconfig.json\n - ../ui/tailwind.config.js:/ui/tailwind.config.js\n working_dir: /ui\n ports:\n - \"2001:2001\"\n expose:\n - \"2001\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2001\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n APP_NAME: Browserable\n DOMAIN: localhost:2001\n ROOT_DOMAIN: localhost\n PORT: 2001\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n REACT_APP_TASKS_PUBLIC_URL: \"http://localhost:2003\"\n REACT_APP_UPPY_COMPANION_URL: \"http://localhost:2003/companion\"\n REACT_APP_S3_ENDPOINT: nyc3.digitaloceanspaces.com\n REACT_APP_SINGLE_USER_MODE: 1\n SECRET: please-change-this-secret-key\n REACT_APP_COOKIE_UUID_KEY: browserable_uuid\n\n docs:\n platform: linux/amd64\n container_name: browserable-docs\n build: ../docs\n volumes:\n - ../docs:/docs\n ports:\n - \"2002:3000\"\n expose:\n - \"3000\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:3000\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n \n browserable-redis:\n image: redis:6.2.6-alpine\n container_name: browserable-redis\n ports: \n - \"6379:6379\"\n healthcheck:\n test: [\"CMD\", \"redis-cli\", \"ping\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n\n browserable-mongodb:\n image: mongo:latest\n container_name: browserable-mongodb\n restart: always\n environment:\n MONGO_INITDB_ROOT_USERNAME: mongodb\n MONGO_INITDB_ROOT_PASSWORD: mongodb\n ports:\n - \"27017:27017\"\n healthcheck:\n test: [\"CMD\", \"mongosh\", \"--eval\", \"'db.runCommand(\\\"ping\\\").ok'\", \"--quiet\"]\n interval: 10s\n timeout: 5s\n retries: 5\n volumes:\n - mongodb_data:/data/db\n networks:\n - shared-network\n\n mongo-express:\n image: mongo-express:latest\n container_name: browserable-mongo-express\n restart: always\n ports:\n - \"3300:8081\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:8081\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n ME_CONFIG_MONGODB_ADMINUSERNAME: mongodb\n ME_CONFIG_MONGODB_ADMINPASSWORD: mongodb\n ME_CONFIG_MONGODB_URL: mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\n ME_CONFIG_BASICAUTH_USERNAME: admin\n ME_CONFIG_BASICAUTH_PASSWORD: pass\n depends_on:\n browserable-mongodb:\n condition: service_healthy\n networks:\n - shared-network\n\n\n minio:\n image: minio/minio\n container_name: browserable-minio\n ports:\n - '9000:9000'\n - '9001:9001'\n environment:\n MINIO_ROOT_USER: browserable-storage\n MINIO_ROOT_PASSWORD: secret1234\n command: server --console-address \":9001\" /data\n healthcheck:\n test: [ \"CMD\", \"curl\", \"-f\", \"http://localhost:9000/minio/health/live\" ]\n interval: 2s\n timeout: 10s\n retries: 5\n volumes:\n - minio_data:/data\n networks:\n - shared-network\n\n minio-createbucket:\n image: minio/mc\n container_name: browserable-minio-setup\n depends_on:\n minio:\n condition: service_healthy\n entrypoint: >\n /bin/sh -c \"\n /usr/bin/mc alias set browserable-minio http://minio:9000 browserable-storage secret1234;\n /usr/bin/mc mb browserable-minio/browserable;\n /usr/bin/mc anonymous set public browserable-minio/browserable;\n /usr/bin/mc admin user add browserable-minio browserable-s3-user browserable-s3-password;\n /usr/bin/mc admin policy attach browserable-minio readwrite --user browserable-s3-user;\n exit 0;\n \"\n networks:\n - shared-network\n\n # Supabase Services\n studio:\n container_name: supabase-studio\n image: supabase/studio:20250317-6955350\n restart: unless-stopped\n healthcheck:\n test:\n [\n \"CMD\",\n \"node\",\n \"-e\",\n \"fetch('http://studio:3000/api/platform/profile').then((r) => {if (r.status !== 200) throw new Error(r.status)})\"\n ]\n timeout: 10s\n interval: 5s\n retries: 3\n depends_on:\n analytics:\n condition: service_healthy\n environment:\n STUDIO_PG_META_URL: http://meta:8080\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n DEFAULT_ORGANIZATION_NAME: ${STUDIO_DEFAULT_ORGANIZATION}\n DEFAULT_PROJECT_NAME: ${STUDIO_DEFAULT_PROJECT}\n OPENAI_API_KEY: ${OPENAI_API_KEY:-}\n SUPABASE_URL: http://kong:8000\n SUPABASE_PUBLIC_URL: ${SUPABASE_PUBLIC_URL}\n SUPABASE_ANON_KEY: ${ANON_KEY}\n SUPABASE_SERVICE_KEY: ${SERVICE_ROLE_KEY}\n AUTH_JWT_SECRET: ${JWT_SECRET}\n LOGFLARE_API_KEY: ${LOGFLARE_API_KEY}\n LOGFLARE_URL: http://analytics:4000\n NEXT_PUBLIC_ENABLE_LOGS: true\n NEXT_ANALYTICS_BACKEND_PROVIDER: postgres\n networks:\n - shared-network\n\n kong:\n container_name: supabase-kong\n image: kong:2.8.1\n restart: unless-stopped\n ports:\n - ${KONG_HTTP_PORT}:8000/tcp\n - ${KONG_HTTPS_PORT}:8443/tcp\n volumes:\n - ./supabase-docker/volumes/api/kong.yml:/home/kong/temp.yml:ro,z\n depends_on:\n analytics:\n condition: service_healthy\n environment:\n KONG_DATABASE: \"off\"\n KONG_DECLARATIVE_CONFIG: /home/kong/kong.yml\n KONG_DNS_ORDER: LAST,A,CNAME\n KONG_PLUGINS: request-transformer,cors,key-auth,acl,basic-auth\n KONG_NGINX_PROXY_PROXY_BUFFER_SIZE: 160k\n KONG_NGINX_PROXY_PROXY_BUFFERS: 64 160k\n SUPABASE_ANON_KEY: ${ANON_KEY}\n SUPABASE_SERVICE_KEY: ${SERVICE_ROLE_KEY}\n DASHBOARD_USERNAME: ${DASHBOARD_USERNAME}\n DASHBOARD_PASSWORD: ${DASHBOARD_PASSWORD}\n entrypoint: bash -c 'eval \"echo \\\"$$(cat ~/temp.yml)\\\"\" > ~/kong.yml && /docker-entrypoint.sh kong docker-start'\n networks:\n - shared-network\n\n auth:\n container_name: supabase-auth\n image: supabase/gotrue:v2.170.0\n restart: unless-stopped\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:9999/health\"]\n timeout: 5s\n interval: 5s\n retries: 3\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n environment:\n GOTRUE_API_HOST: 0.0.0.0\n GOTRUE_API_PORT: 9999\n API_EXTERNAL_URL: ${API_EXTERNAL_URL}\n GOTRUE_DB_DRIVER: postgres\n GOTRUE_DB_DATABASE_URL: postgres://supabase_auth_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n GOTRUE_SITE_URL: ${SITE_URL}\n GOTRUE_URI_ALLOW_LIST: ${ADDITIONAL_REDIRECT_URLS}\n GOTRUE_DISABLE_SIGNUP: ${DISABLE_SIGNUP}\n GOTRUE_JWT_ADMIN_ROLES: service_role\n GOTRUE_JWT_AUD: authenticated\n GOTRUE_JWT_DEFAULT_GROUP_NAME: authenticated\n GOTRUE_JWT_EXP: ${JWT_EXPIRY}\n GOTRUE_JWT_SECRET: ${JWT_SECRET}\n GOTRUE_EXTERNAL_EMAIL_ENABLED: ${ENABLE_EMAIL_SIGNUP}\n GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED: ${ENABLE_ANONYMOUS_USERS}\n GOTRUE_MAILER_AUTOCONFIRM: ${ENABLE_EMAIL_AUTOCONFIRM}\n GOTRUE_SMTP_ADMIN_EMAIL: ${SMTP_ADMIN_EMAIL}\n GOTRUE_SMTP_HOST: ${SMTP_HOST}\n GOTRUE_SMTP_PORT: ${SMTP_PORT}\n GOTRUE_SMTP_USER: ${SMTP_USER}\n GOTRUE_SMTP_PASS: ${SMTP_PASS}\n GOTRUE_SMTP_SENDER_NAME: ${SMTP_SENDER_NAME}\n GOTRUE_MAILER_URLPATHS_INVITE: ${MAILER_URLPATHS_INVITE}\n GOTRUE_MAILER_URLPATHS_CONFIRMATION: ${MAILER_URLPATHS_CONFIRMATION}\n GOTRUE_MAILER_URLPATHS_RECOVERY: ${MAILER_URLPATHS_RECOVERY}\n GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE: ${MAILER_URLPATHS_EMAIL_CHANGE}\n GOTRUE_EXTERNAL_PHONE_ENABLED: ${ENABLE_PHONE_SIGNUP}\n GOTRUE_SMS_AUTOCONFIRM: ${ENABLE_PHONE_AUTOCONFIRM}\n networks:\n - shared-network\n\n rest:\n container_name: supabase-rest\n image: postgrest/postgrest:v12.2.8\n restart: unless-stopped\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n environment:\n PGRST_DB_URI: postgres://authenticator:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n PGRST_DB_SCHEMAS: ${PGRST_DB_SCHEMAS}\n PGRST_DB_ANON_ROLE: anon\n PGRST_JWT_SECRET: ${JWT_SECRET}\n PGRST_DB_USE_LEGACY_GUCS: \"false\"\n PGRST_APP_SETTINGS_JWT_SECRET: ${JWT_SECRET}\n PGRST_APP_SETTINGS_JWT_EXP: ${JWT_EXPIRY}\n command: [\"postgrest\"]\n networks:\n - shared-network\n\n realtime:\n container_name: realtime-dev.supabase-realtime\n image: supabase/realtime:v2.34.43\n restart: unless-stopped\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n healthcheck:\n test: [\"CMD\", \"curl\", \"-sSfL\", \"--head\", \"-o\", \"/dev/null\", \"-H\", \"Authorization: Bearer ${ANON_KEY}\", \"http://localhost:4000/api/tenants/realtime-dev/health\"]\n timeout: 5s\n interval: 5s\n retries: 3\n environment:\n PORT: 4000\n DB_HOST: ${POSTGRES_HOST}\n DB_PORT: ${POSTGRES_PORT}\n DB_USER: supabase_admin\n DB_PASSWORD: ${POSTGRES_PASSWORD}\n DB_NAME: ${POSTGRES_DB}\n DB_AFTER_CONNECT_QUERY: 'SET search_path TO _realtime'\n DB_ENC_KEY: supabaserealtime\n API_JWT_SECRET: ${JWT_SECRET}\n SECRET_KEY_BASE: ${SECRET_KEY_BASE}\n ERL_AFLAGS: -proto_dist inet_tcp\n DNS_NODES: \"''\"\n RLIMIT_NOFILE: \"10000\"\n APP_NAME: realtime\n SEED_SELF_HOST: true\n RUN_JANITOR: true\n networks:\n - shared-network\n\n storage:\n container_name: supabase-storage\n image: supabase/storage-api:v1.19.3\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/storage:/var/lib/storage:z\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://storage:5000/status\"]\n timeout: 5s\n interval: 5s\n retries: 3\n depends_on:\n db:\n condition: service_healthy\n rest:\n condition: service_started\n imgproxy:\n condition: service_started\n environment:\n ANON_KEY: ${ANON_KEY}\n SERVICE_KEY: ${SERVICE_ROLE_KEY}\n POSTGREST_URL: http://rest:3000\n PGRST_JWT_SECRET: ${JWT_SECRET}\n DATABASE_URL: postgres://supabase_storage_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n FILE_SIZE_LIMIT: 52428800\n STORAGE_BACKEND: file\n FILE_STORAGE_BACKEND_PATH: /var/lib/storage\n TENANT_ID: stub\n REGION: stub\n GLOBAL_S3_BUCKET: stub\n ENABLE_IMAGE_TRANSFORMATION: \"true\"\n IMGPROXY_URL: http://imgproxy:5001\n networks:\n - shared-network\n\n imgproxy:\n container_name: supabase-imgproxy\n image: darthsim/imgproxy:v3.8.0\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/storage:/var/lib/storage:z\n healthcheck:\n test: [\"CMD\", \"imgproxy\", \"health\"]\n timeout: 5s\n interval: 5s\n retries: 3\n environment:\n IMGPROXY_BIND: \":5001\"\n IMGPROXY_LOCAL_FILESYSTEM_ROOT: /\n IMGPROXY_USE_ETAG: \"true\"\n IMGPROXY_ENABLE_WEBP_DETECTION: ${IMGPROXY_ENABLE_WEBP_DETECTION}\n networks:\n - shared-network\n\n meta:\n container_name: supabase-meta\n image: supabase/postgres-meta:v0.87.1\n restart: unless-stopped\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n environment:\n PG_META_PORT: 8080\n PG_META_DB_HOST: ${POSTGRES_HOST}\n PG_META_DB_PORT: ${POSTGRES_PORT}\n PG_META_DB_NAME: ${POSTGRES_DB}\n PG_META_DB_USER: supabase_admin\n PG_META_DB_PASSWORD: ${POSTGRES_PASSWORD}\n networks:\n - shared-network\n\n functions:\n container_name: supabase-edge-functions\n image: supabase/edge-runtime:v1.67.4\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/functions:/home/deno/functions:Z\n depends_on:\n analytics:\n condition: service_healthy\n environment:\n JWT_SECRET: ${JWT_SECRET}\n SUPABASE_URL: http://kong:8000\n SUPABASE_ANON_KEY: ${ANON_KEY}\n SUPABASE_SERVICE_ROLE_KEY: ${SERVICE_ROLE_KEY}\n SUPABASE_DB_URL: postgresql://postgres:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n VERIFY_JWT: \"${FUNCTIONS_VERIFY_JWT}\"\n command: [\"start\", \"--main-service\", \"/home/deno/functions/main\"]\n networks:\n - shared-network\n\n analytics:\n container_name: supabase-analytics\n image: supabase/logflare:1.12.0\n restart: unless-stopped\n ports:\n - 4000:4000\n healthcheck:\n test: [\"CMD\", \"curl\", \"http://localhost:4000/health\"]\n timeout: 5s\n interval: 5s\n retries: 10\n depends_on:\n db:\n condition: service_healthy\n environment:\n LOGFLARE_NODE_HOST: 127.0.0.1\n DB_USERNAME: supabase_admin\n DB_DATABASE: _supabase\n DB_HOSTNAME: ${POSTGRES_HOST}\n DB_PORT: ${POSTGRES_PORT}\n DB_PASSWORD: ${POSTGRES_PASSWORD}\n DB_SCHEMA: _analytics\n LOGFLARE_API_KEY: ${LOGFLARE_API_KEY}\n LOGFLARE_SINGLE_TENANT: true\n LOGFLARE_SUPABASE_MODE: true\n LOGFLARE_MIN_CLUSTER_SIZE: 1\n POSTGRES_BACKEND_URL: postgresql://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/_supabase\n POSTGRES_BACKEND_SCHEMA: _analytics\n LOGFLARE_FEATURE_FLAG_OVERRIDE: multibackend=true\n networks:\n - shared-network\n\n db:\n container_name: supabase-db\n image: supabase/postgres:15.8.1.060\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/db/realtime.sql:/docker-entrypoint-initdb.d/migrations/99-realtime.sql:Z\n - ./supabase-docker/volumes/db/webhooks.sql:/docker-entrypoint-initdb.d/init-scripts/98-webhooks.sql:Z\n - ./supabase-docker/volumes/db/roles.sql:/docker-entrypoint-initdb.d/init-scripts/99-roles.sql:Z\n - ./supabase-docker/volumes/db/jwt.sql:/docker-entrypoint-initdb.d/init-scripts/99-jwt.sql:Z\n - ./supabase-docker/volumes/db/data:/var/lib/postgresql/data:Z\n - ./supabase-docker/volumes/db/_supabase.sql:/docker-entrypoint-initdb.d/migrations/97-_supabase.sql:Z\n - ./supabase-docker/volumes/db/logs.sql:/docker-entrypoint-initdb.d/migrations/99-logs.sql:Z\n - ./supabase-docker/volumes/db/pooler.sql:/docker-entrypoint-initdb.d/migrations/99-pooler.sql:Z\n - ./browserable.sql:/docker-entrypoint-initdb.d/browserable.sql\n - db-config:/etc/postgresql-custom\n healthcheck:\n test: [\"CMD\", \"pg_isready\", \"-U\", \"postgres\", \"-h\", \"localhost\"]\n interval: 5s\n timeout: 5s\n retries: 10\n depends_on:\n vector:\n condition: service_healthy\n environment:\n POSTGRES_HOST: /var/run/postgresql\n PGPORT: ${POSTGRES_PORT}\n POSTGRES_PORT: ${POSTGRES_PORT}\n PGPASSWORD: ${POSTGRES_PASSWORD}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n PGDATABASE: ${POSTGRES_DB}\n POSTGRES_DB: ${POSTGRES_DB}\n JWT_SECRET: ${JWT_SECRET}\n JWT_EXP: ${JWT_EXPIRY}\n command: [\"postgres\", \"-c\", \"config_file=/etc/postgresql/postgresql.conf\", \"-c\", \"log_min_messages=fatal\"]\n networks:\n - shared-network\n\n vector:\n container_name: supabase-vector\n image: timberio/vector:0.28.1-alpine\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/logs/vector.yml:/etc/vector/vector.yml:ro,z\n - ${DOCKER_SOCKET_LOCATION}:/var/run/docker.sock:ro,z\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://vector:9001/health\"]\n timeout: 5s\n interval: 5s\n retries: 3\n environment:\n LOGFLARE_API_KEY: ${LOGFLARE_API_KEY}\n command: [\"--config\", \"/etc/vector/vector.yml\"]\n security_opt:\n - \"label=disable\"\n networks:\n - shared-network\n\n supavisor:\n container_name: supabase-pooler\n image: supabase/supavisor:2.4.14\n restart: unless-stopped\n ports:\n - ${POSTGRES_PORT}:5432\n - ${POOLER_PROXY_PORT_TRANSACTION}:6543\n volumes:\n - ./supabase-docker/volumes/pooler/pooler.exs:/etc/pooler/pooler.exs:ro,z\n healthcheck:\n test: [\"CMD\", \"curl\", \"-sSfL\", \"--head\", \"-o\", \"/dev/null\", \"http://127.0.0.1:4000/api/health\"]\n interval: 10s\n timeout: 5s\n retries: 5\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n environment:\n PORT: 4000\n POSTGRES_PORT: ${POSTGRES_PORT}\n POSTGRES_DB: ${POSTGRES_DB}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n DATABASE_URL: ecto://supabase_admin:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/_supabase\n CLUSTER_POSTGRES: true\n SECRET_KEY_BASE: ${SECRET_KEY_BASE}\n VAULT_ENC_KEY: ${VAULT_ENC_KEY}\n API_JWT_SECRET: ${JWT_SECRET}\n METRICS_JWT_SECRET: ${JWT_SECRET}\n REGION: local\n ERL_AFLAGS: -proto_dist inet_tcp\n POOLER_TENANT_ID: ${POOLER_TENANT_ID}\n POOLER_DEFAULT_POOL_SIZE: ${POOLER_DEFAULT_POOL_SIZE}\n POOLER_MAX_CLIENT_CONN: ${POOLER_MAX_CLIENT_CONN}\n POOLER_POOL_MODE: transaction\n command: [\"/bin/sh\", \"-c\", \"/app/bin/migrate && /app/bin/supavisor eval \\\"$$(cat /etc/pooler/pooler.exs)\\\" && /app/bin/server\"]\n networks:\n - shared-network\n\n\nnetworks:\n shared-network:\n driver: bridge\n\nvolumes:\n mongodb_data:\n driver: local\n db-config:\n driver: local\n minio_data:\n driver: local"}, "5217f9a533b70e65f1cf7272cf8526dae94daaf5": {"t": 1785749243.218067, "n": 20969, "h": "055d0b7788d1532c", "c": "services:\n tasks:\n platform: linux/amd64\n container_name: browserable-tasks\n build: ../tasks\n volumes:\n - ../tasks/views:/tasks/views\n - ../tasks/services:/tasks/services\n - ../tasks/public:/tasks/public\n - ../tasks/routes:/tasks/routes\n - ../tasks/logic:/tasks/logic\n - ../tasks/prompts:/tasks/prompts\n - ../tasks/utils:/tasks/utils\n - ../tasks/agents:/tasks/agents\n - ../tasks/app.js:/tasks/app.js\n - ../tasks/version.js:/tasks/version.js\n - ../tasks/package.json:/tasks/package.json\n - ../tasks/files:/tasks/files\n working_dir: /tasks\n ports:\n - \"2003:2003\"\n - \"2010:2010\"\n expose:\n - \"2003\"\n - \"2010\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2003/health\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n APP_NAME: Browserable\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n DOMAIN: localhost:2003\n ROOT_DOMAIN: localhost\n PORT: 2003\n UPPY_PORT: 2010\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n PW_TEST_SCREENSHOT_NO_FONTS_READY: 1\n PW_TEST_REUSE_CONTEXT: 1\n TASKS_DATABASE_URL: postgresql://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n TASKS_REDIS_URL: \"redis://browserable-redis:6379/\"\n MONGODB_URL: \"mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\"\n CORS_DOMAINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_CLIENT_ORIGINS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_UPLOAD_URLS: \"http://localhost:2001,http://localhost:2003,http://localhost:2004,http://localhost:2005,http://localhost\"\n COMPANION_AWS_ACL: \"public-read\"\n SECRET: please-change-this-secret-key\n APP_URL: http://localhost:2001\n ADMIN_EMAIL: admin@browserable.ai\n COOKIE_UUID_KEY: browserable_uuid\n SMTP_HOST: \n SMTP_PORT: \n SMTP_USER: \n SMTP_PASS: \n SMTP_FROM:\n S3_ENDPOINT: http://minio:9000\n S3_BUCKET: browserable\n S3_KEY: browserable-storage\n S3_SECRET: secret1234\n S3_PRIVATE_DOMAIN: http://minio:9000\n S3_PUBLIC_DOMAIN: http://localhost:9000\n SINGLE_USER_MODE: 1\n DISCORD_ADMIN_WEBHOOK: \n OPENAI_API_KEY: \n CLAUDE_API_KEY: \n QWEN_API_KEY: \n GEMINI_API_KEY: \n DEEPSEEK_API_KEY: \n STEEL_API_KEY: \n HYPER_BROWSER_API_KEY:\n BROWSERBASE_API_KEY: \n BROWSERBASE_PROJECT_ID: \n BROWSER_CONCURRENCY: 1\n links:\n - browserable-redis\n - browserable-mongodb\n - supavisor\n depends_on:\n db:\n condition: service_healthy\n supavisor:\n condition: service_healthy\n browserable-redis:\n condition: service_started\n browserable-mongodb:\n condition: service_started\n minio:\n condition: service_healthy\n networks:\n - shared-network\n\n ui:\n platform: linux/amd64\n container_name: browserable-ui\n build: ../ui\n volumes:\n - ../ui/assets:/ui/assets\n - ../ui/src:/ui/src\n - ../ui/tools:/ui/tools\n - ../ui/build:/ui/build\n - ../ui/package.json:/ui/package.json\n - ../ui/tsconfig.json:/ui/tsconfig.json\n - ../ui/tailwind.config.js:/ui/tailwind.config.js\n working_dir: /ui\n ports:\n - \"2001:2001\"\n expose:\n - \"2001\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:2001\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n NODE_TLS_REJECT_UNAUTHORIZED: \"0\"\n NEW_RELIC_NO_CONFIG_FILE: 1\n NEW_RELIC_ENABLED: 0\n APP_NAME: Browserable\n DOMAIN: localhost:2001\n ROOT_DOMAIN: localhost\n PORT: 2001\n DEBUG: 1\n HTTPS_DOMAIN: 0\n NODE_ENV: development\n REACT_APP_TASKS_PUBLIC_URL: \"http://localhost:2003\"\n REACT_APP_UPPY_COMPANION_URL: \"http://localhost:2003/companion\"\n REACT_APP_S3_ENDPOINT: nyc3.digitaloceanspaces.com\n REACT_APP_SINGLE_USER_MODE: 1\n SECRET: please-change-this-secret-key\n REACT_APP_COOKIE_UUID_KEY: browserable_uuid\n\n docs:\n platform: linux/amd64\n container_name: browserable-docs\n build: ../docs\n volumes:\n - ../docs:/docs\n ports:\n - \"2002:3000\"\n expose:\n - \"3000\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:3000\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n \n browserable-redis:\n image: \"redisfab/redis:6.2.6-arm64v8-bionic\"\n container_name: browserable-redis\n ports: \n - \"6379:6379\"\n healthcheck:\n test: [\"CMD\", \"redis-cli\", \"ping\"]\n interval: 10s\n timeout: 5s\n retries: 5\n networks:\n - shared-network\n\n browserable-mongodb:\n image: mongo:latest\n container_name: browserable-mongodb\n restart: always\n environment:\n MONGO_INITDB_ROOT_USERNAME: mongodb\n MONGO_INITDB_ROOT_PASSWORD: mongodb\n ports:\n - \"27017:27017\"\n healthcheck:\n test: [\"CMD\", \"mongosh\", \"--eval\", \"'db.runCommand(\\\"ping\\\").ok'\", \"--quiet\"]\n interval: 10s\n timeout: 5s\n retries: 5\n volumes:\n - mongodb_data:/data/db\n networks:\n - shared-network\n\n mongo-express:\n image: mongo-express:latest\n container_name: browserable-mongo-express\n restart: always\n ports:\n - \"3300:8081\"\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:8081\"]\n interval: 10s\n timeout: 5s\n retries: 5\n environment:\n ME_CONFIG_MONGODB_ADMINUSERNAME: mongodb\n ME_CONFIG_MONGODB_ADMINPASSWORD: mongodb\n ME_CONFIG_MONGODB_URL: mongodb://mongodb:mongodb@browserable-mongodb:27017/browserable?authSource=admin\n ME_CONFIG_BASICAUTH_USERNAME: admin\n ME_CONFIG_BASICAUTH_PASSWORD: pass\n depends_on:\n browserable-mongodb:\n condition: service_healthy\n networks:\n - shared-network\n\n\n minio:\n image: minio/minio\n container_name: browserable-minio\n ports:\n - '9000:9000'\n - '9001:9001'\n environment:\n MINIO_ROOT_USER: browserable-storage\n MINIO_ROOT_PASSWORD: secret1234\n command: server --console-address \":9001\" /data\n healthcheck:\n test: [ \"CMD\", \"curl\", \"-f\", \"http://localhost:9000/minio/health/live\" ]\n interval: 2s\n timeout: 10s\n retries: 5\n volumes:\n - minio_data:/data\n networks:\n - shared-network\n\n minio-createbucket:\n image: minio/mc\n container_name: browserable-minio-setup\n depends_on:\n minio:\n condition: service_healthy\n entrypoint: >\n /bin/sh -c \"\n /usr/bin/mc alias set browserable-minio http://minio:9000 browserable-storage secret1234;\n /usr/bin/mc mb browserable-minio/browserable;\n /usr/bin/mc anonymous set public browserable-minio/browserable;\n /usr/bin/mc admin user add browserable-minio browserable-s3-user browserable-s3-password;\n /usr/bin/mc admin policy attach browserable-minio readwrite --user browserable-s3-user;\n exit 0;\n \"\n networks:\n - shared-network\n\n # Supabase Services\n studio:\n container_name: supabase-studio\n image: supabase/studio:20250317-6955350\n restart: unless-stopped\n healthcheck:\n test:\n [\n \"CMD\",\n \"node\",\n \"-e\",\n \"fetch('http://studio:3000/api/platform/profile').then((r) => {if (r.status !== 200) throw new Error(r.status)})\"\n ]\n timeout: 10s\n interval: 5s\n retries: 3\n depends_on:\n analytics:\n condition: service_healthy\n environment:\n STUDIO_PG_META_URL: http://meta:8080\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n DEFAULT_ORGANIZATION_NAME: ${STUDIO_DEFAULT_ORGANIZATION}\n DEFAULT_PROJECT_NAME: ${STUDIO_DEFAULT_PROJECT}\n OPENAI_API_KEY: ${OPENAI_API_KEY:-}\n SUPABASE_URL: http://kong:8000\n SUPABASE_PUBLIC_URL: ${SUPABASE_PUBLIC_URL}\n SUPABASE_ANON_KEY: ${ANON_KEY}\n SUPABASE_SERVICE_KEY: ${SERVICE_ROLE_KEY}\n AUTH_JWT_SECRET: ${JWT_SECRET}\n LOGFLARE_API_KEY: ${LOGFLARE_API_KEY}\n LOGFLARE_URL: http://analytics:4000\n NEXT_PUBLIC_ENABLE_LOGS: true\n NEXT_ANALYTICS_BACKEND_PROVIDER: postgres\n networks:\n - shared-network\n\n kong:\n container_name: supabase-kong\n image: kong:2.8.1\n restart: unless-stopped\n ports:\n - ${KONG_HTTP_PORT}:8000/tcp\n - ${KONG_HTTPS_PORT}:8443/tcp\n volumes:\n - ./supabase-docker/volumes/api/kong.yml:/home/kong/temp.yml:ro,z\n depends_on:\n analytics:\n condition: service_healthy\n environment:\n KONG_DATABASE: \"off\"\n KONG_DECLARATIVE_CONFIG: /home/kong/kong.yml\n KONG_DNS_ORDER: LAST,A,CNAME\n KONG_PLUGINS: request-transformer,cors,key-auth,acl,basic-auth\n KONG_NGINX_PROXY_PROXY_BUFFER_SIZE: 160k\n KONG_NGINX_PROXY_PROXY_BUFFERS: 64 160k\n SUPABASE_ANON_KEY: ${ANON_KEY}\n SUPABASE_SERVICE_KEY: ${SERVICE_ROLE_KEY}\n DASHBOARD_USERNAME: ${DASHBOARD_USERNAME}\n DASHBOARD_PASSWORD: ${DASHBOARD_PASSWORD}\n entrypoint: bash -c 'eval \"echo \\\"$$(cat ~/temp.yml)\\\"\" > ~/kong.yml && /docker-entrypoint.sh kong docker-start'\n networks:\n - shared-network\n\n auth:\n container_name: supabase-auth\n image: supabase/gotrue:v2.170.0\n restart: unless-stopped\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:9999/health\"]\n timeout: 5s\n interval: 5s\n retries: 3\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n environment:\n GOTRUE_API_HOST: 0.0.0.0\n GOTRUE_API_PORT: 9999\n API_EXTERNAL_URL: ${API_EXTERNAL_URL}\n GOTRUE_DB_DRIVER: postgres\n GOTRUE_DB_DATABASE_URL: postgres://supabase_auth_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n GOTRUE_SITE_URL: ${SITE_URL}\n GOTRUE_URI_ALLOW_LIST: ${ADDITIONAL_REDIRECT_URLS}\n GOTRUE_DISABLE_SIGNUP: ${DISABLE_SIGNUP}\n GOTRUE_JWT_ADMIN_ROLES: service_role\n GOTRUE_JWT_AUD: authenticated\n GOTRUE_JWT_DEFAULT_GROUP_NAME: authenticated\n GOTRUE_JWT_EXP: ${JWT_EXPIRY}\n GOTRUE_JWT_SECRET: ${JWT_SECRET}\n GOTRUE_EXTERNAL_EMAIL_ENABLED: ${ENABLE_EMAIL_SIGNUP}\n GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED: ${ENABLE_ANONYMOUS_USERS}\n GOTRUE_MAILER_AUTOCONFIRM: ${ENABLE_EMAIL_AUTOCONFIRM}\n GOTRUE_SMTP_ADMIN_EMAIL: ${SMTP_ADMIN_EMAIL}\n GOTRUE_SMTP_HOST: ${SMTP_HOST}\n GOTRUE_SMTP_PORT: ${SMTP_PORT}\n GOTRUE_SMTP_USER: ${SMTP_USER}\n GOTRUE_SMTP_PASS: ${SMTP_PASS}\n GOTRUE_SMTP_SENDER_NAME: ${SMTP_SENDER_NAME}\n GOTRUE_MAILER_URLPATHS_INVITE: ${MAILER_URLPATHS_INVITE}\n GOTRUE_MAILER_URLPATHS_CONFIRMATION: ${MAILER_URLPATHS_CONFIRMATION}\n GOTRUE_MAILER_URLPATHS_RECOVERY: ${MAILER_URLPATHS_RECOVERY}\n GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE: ${MAILER_URLPATHS_EMAIL_CHANGE}\n GOTRUE_EXTERNAL_PHONE_ENABLED: ${ENABLE_PHONE_SIGNUP}\n GOTRUE_SMS_AUTOCONFIRM: ${ENABLE_PHONE_AUTOCONFIRM}\n networks:\n - shared-network\n\n rest:\n container_name: supabase-rest\n image: postgrest/postgrest:v12.2.8\n restart: unless-stopped\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n environment:\n PGRST_DB_URI: postgres://authenticator:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n PGRST_DB_SCHEMAS: ${PGRST_DB_SCHEMAS}\n PGRST_DB_ANON_ROLE: anon\n PGRST_JWT_SECRET: ${JWT_SECRET}\n PGRST_DB_USE_LEGACY_GUCS: \"false\"\n PGRST_APP_SETTINGS_JWT_SECRET: ${JWT_SECRET}\n PGRST_APP_SETTINGS_JWT_EXP: ${JWT_EXPIRY}\n command: [\"postgrest\"]\n networks:\n - shared-network\n\n realtime:\n container_name: realtime-dev.supabase-realtime\n image: supabase/realtime:v2.34.43\n restart: unless-stopped\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n healthcheck:\n test: [\"CMD\", \"curl\", \"-sSfL\", \"--head\", \"-o\", \"/dev/null\", \"-H\", \"Authorization: Bearer ${ANON_KEY}\", \"http://localhost:4000/api/tenants/realtime-dev/health\"]\n timeout: 5s\n interval: 5s\n retries: 3\n environment:\n PORT: 4000\n DB_HOST: ${POSTGRES_HOST}\n DB_PORT: ${POSTGRES_PORT}\n DB_USER: supabase_admin\n DB_PASSWORD: ${POSTGRES_PASSWORD}\n DB_NAME: ${POSTGRES_DB}\n DB_AFTER_CONNECT_QUERY: 'SET search_path TO _realtime'\n DB_ENC_KEY: supabaserealtime\n API_JWT_SECRET: ${JWT_SECRET}\n SECRET_KEY_BASE: ${SECRET_KEY_BASE}\n ERL_AFLAGS: -proto_dist inet_tcp\n DNS_NODES: \"''\"\n RLIMIT_NOFILE: \"10000\"\n APP_NAME: realtime\n SEED_SELF_HOST: true\n RUN_JANITOR: true\n networks:\n - shared-network\n\n storage:\n container_name: supabase-storage\n image: supabase/storage-api:v1.19.3\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/storage:/var/lib/storage:z\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://storage:5000/status\"]\n timeout: 5s\n interval: 5s\n retries: 3\n depends_on:\n db:\n condition: service_healthy\n rest:\n condition: service_started\n imgproxy:\n condition: service_started\n environment:\n ANON_KEY: ${ANON_KEY}\n SERVICE_KEY: ${SERVICE_ROLE_KEY}\n POSTGREST_URL: http://rest:3000\n PGRST_JWT_SECRET: ${JWT_SECRET}\n DATABASE_URL: postgres://supabase_storage_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n FILE_SIZE_LIMIT: 52428800\n STORAGE_BACKEND: file\n FILE_STORAGE_BACKEND_PATH: /var/lib/storage\n TENANT_ID: stub\n REGION: stub\n GLOBAL_S3_BUCKET: stub\n ENABLE_IMAGE_TRANSFORMATION: \"true\"\n IMGPROXY_URL: http://imgproxy:5001\n networks:\n - shared-network\n\n imgproxy:\n container_name: supabase-imgproxy\n image: darthsim/imgproxy:v3.8.0\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/storage:/var/lib/storage:z\n healthcheck:\n test: [\"CMD\", \"imgproxy\", \"health\"]\n timeout: 5s\n interval: 5s\n retries: 3\n environment:\n IMGPROXY_BIND: \":5001\"\n IMGPROXY_LOCAL_FILESYSTEM_ROOT: /\n IMGPROXY_USE_ETAG: \"true\"\n IMGPROXY_ENABLE_WEBP_DETECTION: ${IMGPROXY_ENABLE_WEBP_DETECTION}\n networks:\n - shared-network\n\n meta:\n container_name: supabase-meta\n image: supabase/postgres-meta:v0.87.1\n restart: unless-stopped\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n environment:\n PG_META_PORT: 8080\n PG_META_DB_HOST: ${POSTGRES_HOST}\n PG_META_DB_PORT: ${POSTGRES_PORT}\n PG_META_DB_NAME: ${POSTGRES_DB}\n PG_META_DB_USER: supabase_admin\n PG_META_DB_PASSWORD: ${POSTGRES_PASSWORD}\n networks:\n - shared-network\n\n functions:\n container_name: supabase-edge-functions\n image: supabase/edge-runtime:v1.67.4\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/functions:/home/deno/functions:Z\n depends_on:\n analytics:\n condition: service_healthy\n environment:\n JWT_SECRET: ${JWT_SECRET}\n SUPABASE_URL: http://kong:8000\n SUPABASE_ANON_KEY: ${ANON_KEY}\n SUPABASE_SERVICE_ROLE_KEY: ${SERVICE_ROLE_KEY}\n SUPABASE_DB_URL: postgresql://postgres:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}\n VERIFY_JWT: \"${FUNCTIONS_VERIFY_JWT}\"\n command: [\"start\", \"--main-service\", \"/home/deno/functions/main\"]\n networks:\n - shared-network\n\n analytics:\n container_name: supabase-analytics\n image: supabase/logflare:1.12.0\n restart: unless-stopped\n ports:\n - 4000:4000\n healthcheck:\n test: [\"CMD\", \"curl\", \"http://localhost:4000/health\"]\n timeout: 5s\n interval: 5s\n retries: 10\n depends_on:\n db:\n condition: service_healthy\n environment:\n LOGFLARE_NODE_HOST: 127.0.0.1\n DB_USERNAME: supabase_admin\n DB_DATABASE: _supabase\n DB_HOSTNAME: ${POSTGRES_HOST}\n DB_PORT: ${POSTGRES_PORT}\n DB_PASSWORD: ${POSTGRES_PASSWORD}\n DB_SCHEMA: _analytics\n LOGFLARE_API_KEY: ${LOGFLARE_API_KEY}\n LOGFLARE_SINGLE_TENANT: true\n LOGFLARE_SUPABASE_MODE: true\n LOGFLARE_MIN_CLUSTER_SIZE: 1\n POSTGRES_BACKEND_URL: postgresql://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/_supabase\n POSTGRES_BACKEND_SCHEMA: _analytics\n LOGFLARE_FEATURE_FLAG_OVERRIDE: multibackend=true\n networks:\n - shared-network\n\n db:\n container_name: supabase-db\n image: supabase/postgres:15.8.1.060\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/db/realtime.sql:/docker-entrypoint-initdb.d/migrations/99-realtime.sql:Z\n - ./supabase-docker/volumes/db/webhooks.sql:/docker-entrypoint-initdb.d/init-scripts/98-webhooks.sql:Z\n - ./supabase-docker/volumes/db/roles.sql:/docker-entrypoint-initdb.d/init-scripts/99-roles.sql:Z\n - ./supabase-docker/volumes/db/jwt.sql:/docker-entrypoint-initdb.d/init-scripts/99-jwt.sql:Z\n - ./supabase-docker/volumes/db/data:/var/lib/postgresql/data:Z\n - ./supabase-docker/volumes/db/_supabase.sql:/docker-entrypoint-initdb.d/migrations/97-_supabase.sql:Z\n - ./supabase-docker/volumes/db/logs.sql:/docker-entrypoint-initdb.d/migrations/99-logs.sql:Z\n - ./supabase-docker/volumes/db/pooler.sql:/docker-entrypoint-initdb.d/migrations/99-pooler.sql:Z\n - ./browserable.sql:/docker-entrypoint-initdb.d/browserable.sql\n - db-config:/etc/postgresql-custom\n healthcheck:\n test: [\"CMD\", \"pg_isready\", \"-U\", \"postgres\", \"-h\", \"localhost\"]\n interval: 5s\n timeout: 5s\n retries: 10\n depends_on:\n vector:\n condition: service_healthy\n environment:\n POSTGRES_HOST: /var/run/postgresql\n PGPORT: ${POSTGRES_PORT}\n POSTGRES_PORT: ${POSTGRES_PORT}\n PGPASSWORD: ${POSTGRES_PASSWORD}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n PGDATABASE: ${POSTGRES_DB}\n POSTGRES_DB: ${POSTGRES_DB}\n JWT_SECRET: ${JWT_SECRET}\n JWT_EXP: ${JWT_EXPIRY}\n command: [\"postgres\", \"-c\", \"config_file=/etc/postgresql/postgresql.conf\", \"-c\", \"log_min_messages=fatal\"]\n networks:\n - shared-network\n\n vector:\n container_name: supabase-vector\n image: timberio/vector:0.28.1-alpine\n restart: unless-stopped\n volumes:\n - ./supabase-docker/volumes/logs/vector.yml:/etc/vector/vector.yml:ro,z\n - ${DOCKER_SOCKET_LOCATION}:/var/run/docker.sock:ro,z\n healthcheck:\n test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://vector:9001/health\"]\n timeout: 5s\n interval: 5s\n retries: 3\n environment:\n LOGFLARE_API_KEY: ${LOGFLARE_API_KEY}\n command: [\"--config\", \"/etc/vector/vector.yml\"]\n security_opt:\n - \"label=disable\"\n networks:\n - shared-network\n\n supavisor:\n container_name: supabase-pooler\n image: supabase/supavisor:2.4.14\n restart: unless-stopped\n ports:\n - ${POSTGRES_PORT}:5432\n - ${POOLER_PROXY_PORT_TRANSACTION}:6543\n volumes:\n - ./supabase-docker/volumes/pooler/pooler.exs:/etc/pooler/pooler.exs:ro,z\n healthcheck:\n test: [\"CMD\", \"curl\", \"-sSfL\", \"--head\", \"-o\", \"/dev/null\", \"http://127.0.0.1:4000/api/health\"]\n interval: 10s\n timeout: 5s\n retries: 5\n depends_on:\n db:\n condition: service_healthy\n analytics:\n condition: service_healthy\n environment:\n PORT: 4000\n POSTGRES_PORT: ${POSTGRES_PORT}\n POSTGRES_DB: ${POSTGRES_DB}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n DATABASE_URL: ecto://supabase_admin:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/_supabase\n CLUSTER_POSTGRES: true\n SECRET_KEY_BASE: ${SECRET_KEY_BASE}\n VAULT_ENC_KEY: ${VAULT_ENC_KEY}\n API_JWT_SECRET: ${JWT_SECRET}\n METRICS_JWT_SECRET: ${JWT_SECRET}\n REGION: local\n ERL_AFLAGS: -proto_dist inet_tcp\n POOLER_TENANT_ID: ${POOLER_TENANT_ID}\n POOLER_DEFAULT_POOL_SIZE: ${POOLER_DEFAULT_POOL_SIZE}\n POOLER_MAX_CLIENT_CONN: ${POOLER_MAX_CLIENT_CONN}\n POOLER_POOL_MODE: transaction\n command: [\"/bin/sh\", \"-c\", \"/app/bin/migrate && /app/bin/supavisor eval \\\"$$(cat /etc/pooler/pooler.exs)\\\" && /app/bin/server\"]\n networks:\n - shared-network\n\n\nnetworks:\n shared-network:\n driver: bridge\n\nvolumes:\n mongodb_data:\n driver: local\n db-config:\n driver: local\n minio_data:\n driver: local"}}}}