Desarrollo local — Development Setup

Requisitos

Herramienta Versión Propósito
Bun 1.x+ Runtime del backend (Master Bot, Child Bot, MCP)
Node.js 22+ Build del frontend (npm)
Docker Latest Opcional — para containerización
Git Latest Repositorio

Inicio rápido

git clone [email protected]:SerhiiInUa/citadel-v2.git
cd citadel-v2
cp .env.example .env
# Edita .env — agrega los tokens de los bots

# Una sola vez: activar el hook de doc-coverage pre-push (Phase 49.1)
bash scripts/setup-hooks.sh

Por qué el hook: bloquea git push cuando cambias código sin actualizar los docs. Bypass: git push --no-verify. Detalles en la sección "Documentation Law" de CLAUDE.md.

Frontend

cd frontend
npm install
npm run dev          # → http://localhost:5173

Vite hace proxy automáticamente de:

Comandos de build

Backend

Master Bot (CRM API)

cd master-bot
bun install
bun run bot.ts       # → http://localhost:19210

Este es el servidor API principal con 68+ endpoints. Requiere MASTER_BOT_TOKEN en .env.

Child Bot (AI Proxy)

cd child-bot
bun install
bun run bot.ts       # → http://localhost:19211

Proxy Telegram ↔ Claude CLI por proyecto. Requiere CITADEL_BOT_TOKEN en .env.

MCP State Bridge

cd mcp-server
bun install
bun run server.ts    # → http://localhost:19200

Gestor de estado, SSE, WebSocket.

Puertos

Puerto Servicio Descripción
5173 Vite Dev Server Frontend + API proxy
19200 MCP State Bridge Estado, SSE, WebSocket
19210 Master Bot CRM API (68+ endpoints)
19211 Child Bot Health check
18888 Nginx (VPS) Solo producción
18889 Nginx (Docker) Frontend Docker

Variables de entorno (.env)

Obligatorias

MASTER_BOT_TOKEN=...           # Telegram @BotFather
CRM_ALLOWED_ORIGINS=http://localhost:5173

Para funcionalidad completa

CITADEL_BOT_TOKEN=...          # Token del Child Bot
GITHUB_CLIENT_ID=...           # GitHub OAuth
GITHUB_CLIENT_SECRET=...
GOOGLE_CLIENT_ID=...           # Google OAuth
GOOGLE_CLIENT_SECRET=...

Opcionales

HEALTH_PORT=19210
CITADEL_DIR=/path/to/citadel-v2
EMAIL_PROVIDER=console          # 'console' para dev (imprime en la terminal)
[email protected]

Docker (opcional)

# Stack completo
docker compose -f docker/docker-compose.yml up -d --build

# Solo frontend
docker compose -f docker/docker-compose.yml up -d frontend

Estructura del proyecto

citadel-v2/
├── master-bot/          # Telegram оркестратор + CRM API (:19210)
├── child-bot/           # Per-project AI proxy (:19211)
├── mcp-server/          # State bridge (:19200)
├── shared/              # Спільний код (db, auth, routes, migrations)
├── frontend/            # React CRM + Phaser (Vite)
├── clients/             # ARC CLI
├── services/            # NotebookLM Bridge (Python)
├── config/              # Registry, vault, workers
├── skills/              # Skill definitions + evals
├── docker/              # Compose + Dockerfiles + Nginx
├── infra/nginx/         # VPS Nginx config
├── scripts/             # Deploy, build scripts
├── docs/                # Documentation
└── data/                # SQLite DB (auto-created)

Flujo de trabajo de desarrollo típico

  1. Inicia el frontend: cd frontend && npm run dev
  2. Inicia el Master Bot: cd master-bot && bun run bot.ts
  3. Abre http://localhost:5173
  4. Regístrate con email (email_provider=console → código en la terminal)
  5. Crea un proyecto desde la UI
  6. Trabaja con los workers desde el Workspace

Verificación rápida de tipos

cd master-bot && bun build --no-bundle bot.ts    # Type-check backend
cd frontend && npx vite build                     # Type-check + build frontend

Troubleshooting

Problema Solución
Port already in use lsof -i :19210kill <PID>
Error de CORS Verifica CRM_ALLOWED_ORIGINS en .env
El frontend no ve la API Verifica que el Master Bot esté corriendo en :19210
Bun no encuentra módulos bun install en el directorio correspondiente
Errores de i18n cd frontend && npm run i18n:compile