A BI platform with AI-powered dashboards, real-time chat, and multi-database connectivity. Built with FastAPI, Nuxt 4, and LangGraph.
Bingo provides:
- AI-powered dashboards with drag-and-drop widgets (GridStack)
- Real-time WebSocket chat with RAG (Retrieval-Augmented Generation)
- Multi-provider LLM support (OpenAI, Anthropic, Ollama)
- Database connectors for PostgreSQL and MySQL
- AI agent system with orchestrator, data, dashboard, RAG, and monitor agents
- Bingo SSO authentication
- Background job processing via Celery with scheduled tasks
- Memory system for persistent conversation context
┌──────────────┐ HTTP / WebSocket ┌─────────────────┐
│ Nuxt Frontend│ ◄─────────────────────► │ FastAPI Backend │
│ (Port 3000) │ │ (Port 8000) │
└──────────────┘ └────────┬─────────┘
│
┌──────────┬───────────┬───────┼───────────┐
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌──────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────┐
│PostgreSQL│ │ Qdrant │ │ Redis │ │ Celery │ │ Agent │
│(Primary │ │(Vector │ │(Cache +│ │(Worker │ │ Worker │
│ DB) │ │ Store) │ │ Queue) │ │+ Beat) │ │ │
└──────────┘ └────────┘ └────────┘ └────────┘ └──────────┘
Services (via Docker Compose):
- PostgreSQL 15 — primary relational database
- Qdrant — self-hosted vector database for embeddings
- Redis — cache (DB 0), Celery broker (DB 1), Celery results (DB 2), agent mesh (DB 4)
- Celery Worker — background task processing (uploads, jobs)
- Celery Beat — scheduled task execution
- Agent Worker — dedicated worker for AI agent tasks (data, dashboard, RAG, custom queues)
- Docker and Docker Compose
.envfile with API keys
# Clone the repository
git clone https://github.com/thebingoai/thebingoai.git bingo && cd bingo
# Copy and configure environment
cp .env.example .env
# Edit .env with your API keys (at minimum: OPENAI_API_KEY, DB_ENCRYPTION_KEY)
# Start all services
./start.shstart.sh brings up all services via Docker Compose and waits for the backend health check.
Access points:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
# View logs
docker compose -f docker/local/docker-compose.yml logs -f [service]
# Restart a service
docker compose -f docker/local/docker-compose.yml restart [service]
# Stop all services
docker compose -f docker/local/docker-compose.yml down
# Rebuild after code changes
docker compose -f docker/local/docker-compose.yml up --build -dbingo/
├── backend/
│ ├── agents/ # AI agent system (orchestrator, data, dashboard, RAG, monitor)
│ ├── api/ # API route handlers
│ ├── auth/ # Auth provider system (Supabase, base, factory)
│ ├── connectors/ # Database connectors (PostgreSQL, MySQL)
│ ├── database/ # SQLAlchemy models and database setup
│ ├── embedder/ # Embedding generation (OpenAI)
│ ├── langgraph/ # LangGraph RAG implementation
│ ├── llm/ # LLM provider factory (OpenAI, Anthropic, Ollama)
│ ├── memory/ # Persistent memory system
│ ├── models/ # Pydantic request/response models
│ ├── schemas/ # Database schema definitions
│ ├── security/ # Security utilities
│ ├── services/ # Core services (indexing, jobs, retrieval)
│ ├── tasks/ # Celery background tasks
│ ├── tests/ # Backend tests
│ └── vectordb/ # Vector database abstraction
├── frontend/ # Nuxt 4 application
│ ├── components/ # Vue components
│ ├── composables/ # Shared composables (useApi, etc.)
│ ├── pages/ # File-based routing (dashboard, chat, auth, settings)
│ └── stores/ # Pinia stores (auth, etc.)
├── alembic/ # Database migrations
├── docker/
│ ├── backend/ # Backend Dockerfile
│ ├── frontend/ # Frontend Dockerfile
│ └── local/ # Local dev docker-compose.yml
├── docs/ # Documentation
├── plugins/ # Plugin system
├── start.sh # Local development startup script
└── requirements.txt # Python dependencies
POST /api/auth/...— Bingo SSO authentication flows (login, signup, verify, reset password)
/api/connections/...— Manage database connections (PostgreSQL, MySQL)/api/sql/...— Direct SQL query execution
/api/chat/...— WebSocket-powered chat with RAG orchestrator/api/chat-files/...— File uploads for chat context (CSV, PDF, text)
/api/dashboards/...— Dashboard CRUD/api/widget-data/...— Widget data refresh/api/dashboard-schedules/...— Scheduled dashboard updates
/api/agents/...— Custom agent registry/api/agent-sessions/...— Agent mesh sessions/api/skills/...— User skill management
/api/memory/...— Persistent memory system
POST /api/upload— Upload and index markdown filesPOST /api/query— Query indexed documents with natural languageGET /api/search— Search indexed documents
GET /health— Health checkGET /api/status— Detailed system statusGET /api/info— Application infoGET /api/jobs/GET /api/jobs/{job_id}— Background job tracking/api/usage/...— Usage tracking/api/heartbeat-jobs/...— Heartbeat job management
Copy .env.example to .env and configure:
| Variable | Description |
|---|---|
OPENAI_API_KEY |
OpenAI API key (for embeddings and LLM) |
DB_ENCRYPTION_KEY |
Fernet key for database password encryption |
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
Anthropic API key |
OLLAMA_BASE_URL |
Ollama endpoint (default: http://localhost:11434) |
DEFAULT_LLM_PROVIDER |
openai / anthropic / ollama (default: openai) |
| Variable | Description |
|---|---|
ORCHESTRATOR_LEAN_TOOLS |
When true, binds ≤10 primary tools to the orchestrator LLM and routes admin operations (skills, profile, soul, list-dashboards, list-connections) through a single manage meta-tool. Also enables a structured @-mention scope channel: resolved dashboards / connections / Notion pages from the chat input arrive as a per-turn prompt block + typed sub-agent kwargs. Default: false (current behavior — ~20–30 tools bound directly). |
| Variable | Description |
|---|---|
SSO_BASE_URL |
SSO service URL (default: https://sso.thebingo.ai) |
SSO_PUBLISHABLE_KEY |
App name (community) or pk_* publishable key (enterprise) |
SSO_SECRET_KEY |
Backend sk_* secret key (enterprise only; adds X-API-Key header) |
SSO_TOKEN_CACHE_TTL |
Token cache TTL in seconds (default: 300) |
SSO_WEBHOOK_SECRET |
Optional webhook signature verification secret |
SSO_REDIS_URL |
Redis URL for token cache (default: redis://localhost:6379/3) |
| Variable | Description |
|---|---|
DATABASE_URL |
PostgreSQL connection string |
REDIS_URL |
Redis connection string |
QDRANT_URL |
Qdrant connection string |
See .env.example for the full list of configuration options.
- Docker and Docker Compose
- At minimum:
OPENAI_API_KEYandDB_ENCRYPTION_KEYin.env - Optional:
ANTHROPIC_API_KEYfor Anthropic provider, Ollama running locally for local LLM
- FastAPI backend with PostgreSQL
- AI-powered dashboards with drag-and-drop widgets
- Real-time WebSocket chat with RAG
- Multi-provider LLM support (OpenAI, Anthropic, Ollama)
- Database connectors (PostgreSQL, MySQL)
- AI agent system (orchestrator, data, dashboard, RAG, monitor)
- Bingo SSO authentication
- Background job processing with Celery
- Scheduled tasks with Celery Beat
- Memory system for persistent context
- Document indexing and vector search (Qdrant)
- Nuxt 4 frontend
- Docker Compose local development setup
- Database migrations with Alembic
- Usage tracking
Issues and PRs welcome. See LICENSE for terms.
Bingo Community is source-available under the Bingo Sustainable Use License — a fair-code license. You are free to self-host, modify, and use Bingo internally. Offering Bingo as a hosted service to third parties, or removing license and copyright notices, is not permitted. For commercial hosting rights, contact The Bingo AI.