{"owner":"tambo-ai","repo":"tambo","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.yml","servicesCount":4,"services":[{"name":"minio","image":"minio/minio:latest","restart":"unless-stopped","command":"server /data --console-address \":9001\"","ports":["9000:9000","9001:9001"],"environment":["MINIO_ROOT_USER=minioadmin","MINIO_ROOT_PASSWORD=minioadmin"],"volumes":["minio_data:/data"]},{"name":"postgres","image":"postgres:17","restart":"unless-stopped","ports":["5433:5432"],"environment":["POSTGRES_DB=${POSTGRES_DB:-tambo}","POSTGRES_USER=${POSTGRES_USER:-postgres}","POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}","PGDATA=/var/lib/postgresql/data/pgdata"],"volumes":["tambo_postgres_data:/var/lib/postgresql/data"]},{"name":"web","image":"tambo-web:latest","build":{"context":".","dockerfile":"apps/web/Dockerfile"},"restart":"unless-stopped","ports":["8260:3000"],"environment":["PORT=3000","NODE_ENV=${NODE_ENV:-production}","NEXT_PUBLIC_TAMBO_API_URL=${NEXT_PUBLIC_TAMBO_API_URL:-http://localhost:8261}","NEXT_PUBLIC_TAMBO_API_KEY=${NEXT_PUBLIC_TAMBO_API_KEY:-}","NEXT_PUBLIC_POSTHOG_HOST=${NEXT_PUBLIC_POSTHOG_HOST:-}","NEXT_PUBLIC_POSTHOG_KEY=${NEXT_PUBLIC_POSTHOG_KEY:-}","DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@postgres:5432/${POSTGRES_DB:-tambo}","API_KEY_SECRET=${API_KEY_SECRET}","PROVIDER_KEY_SECRET=${PROVIDER_KEY_SECRET}","RESEND_API_KEY=${RESEND_API_KEY:-}","RESEND_AUDIENCE_ID=${RESEND_AUDIENCE_ID:-}","WEATHER_API_KEY=${WEATHER_API_KEY:-}","ALLOW_LOCAL_MCP_SERVERS=${ALLOW_LOCAL_MCP_SERVERS:-}","GITHUB_TOKEN=${GITHUB_TOKEN:-}","EMAIL_FROM_DEFAULT=${EMAIL_FROM_DEFAULT:-}","EMAIL_FROM_PERSONAL=${EMAIL_FROM_PERSONAL:-}","EMAIL_REPLY_TO_SUPPORT=${EMAIL_REPLY_TO_SUPPORT:-}","EMAIL_REPLY_TO_PERSONAL=${EMAIL_REPLY_TO_PERSONAL:-}","GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID:-}","GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET:-}","NEXTAUTH_SECRET=${NEXTAUTH_SECRET}","NEXTAUTH_URL=${NEXTAUTH_URL}","NEXT_PUBLIC_SENTRY_DSN=${NEXT_PUBLIC_SENTRY_DSN:-}","NEXT_PUBLIC_SENTRY_ORG=${NEXT_PUBLIC_SENTRY_ORG:-}","NEXT_PUBLIC_SENTRY_PROJECT=${NEXT_PUBLIC_SENTRY_PROJECT:-}"],"depends_on":["postgres","api"]},{"name":"api","image":"tambo-api:latest","build":{"context":".","dockerfile":"apps/api/Dockerfile"},"restart":"unless-stopped","ports":["8261:3000"],"environment":["PORT=3000","NODE_ENV=${NODE_ENV:-production}","DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@postgres:5432/${POSTGRES_DB:-tambo}","API_KEY_SECRET=${API_KEY_SECRET}","PROVIDER_KEY_SECRET=${PROVIDER_KEY_SECRET}","OPENAI_API_KEY=${OPENAI_API_KEY:-}","EXTRACTION_OPENAI_API_KEY=${EXTRACTION_OPENAI_API_KEY:-}","FALLBACK_OPENAI_API_KEY=${FALLBACK_OPENAI_API_KEY:-}","RESEND_API_KEY=${RESEND_API_KEY:-}","RESEND_AUDIENCE_ID=${RESEND_AUDIENCE_ID:-}","LANGFUSE_PUBLIC_KEY=${LANGFUSE_PUBLIC_KEY:-}","LANGFUSE_SECRET_KEY=${LANGFUSE_SECRET_KEY:-}","LANGFUSE_HOST=${LANGFUSE_HOST:-}","SLACK_OAUTH_TOKEN=${SLACK_OAUTH_TOKEN:-}","SLACK_TEAM_ID=${SLACK_TEAM_ID:-}","INTERNAL_SLACK_USER_ID=${INTERNAL_SLACK_USER_ID:-}","DISALLOWED_EMAIL_DOMAINS=${DISALLOWED_EMAIL_DOMAINS:-}","WEATHER_API_KEY=${WEATHER_API_KEY:-}","ALLOW_LOCAL_MCP_SERVERS=${ALLOW_LOCAL_MCP_SERVERS:-}","EMAIL_FROM_DEFAULT=${EMAIL_FROM_DEFAULT:-}","EMAIL_FROM_PERSONAL=${EMAIL_FROM_PERSONAL:-}","EMAIL_REPLY_TO_PERSONAL=${EMAIL_REPLY_TO_PERSONAL:-}","EMAIL_REPLY_TO_SUPPORT=${EMAIL_REPLY_TO_SUPPORT:-}","SENTRY_DSN=${SENTRY_DSN:-}","POSTHOG_API_KEY=${POSTHOG_API_KEY:-}","POSTHOG_HOST=${POSTHOG_HOST:-}"],"depends_on":["postgres"]}],"exposedPorts":["9000","9001","5433","8260","8261"],"dockerRunCommand":"docker run -d --name tambo -p 9000:9000 --restart always tambo-web:latest","podmanRunCommand":"podman run -d --name tambo -p 9000:9000 --restart always tambo-web:latest","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/tambo-web:latest","orasPullCommand":"oras pull tambo-web:latest","registryMeta":{"provider":"dockerhub","image":"library/tambo-web","canonicalImage":"docker.io/library/tambo-web:latest","latestTag":"latest","cliCommands":{"dockerRun":"docker run -d --name tambo -p 9000:9000 --restart always tambo-web:latest","dockerPull":"docker pull tambo-web:latest","podmanRun":"podman run -d --name tambo -p 9000:9000 --restart always tambo-web:latest","skopeoInspect":"skopeo inspect docker://docker.io/library/tambo-web:latest","orasPull":"oras pull tambo-web:latest","composeYaml":"services:\n  tambo:\n    image: tambo-web:latest\n    restart: unless-stopped\n    ports:\n      - \"9000:9000\""}}}