Skip to main content
Glama
DEV-GUIDE.md5.17 kB
# Development Guide - AI MCP Gateway ## Môi trường Development với Docker Môi trường dev đã được tối ưu để **không cần rebuild** khi code thay đổi. Hot reload được bật tự động. ### Khởi động môi trường Dev ```powershell # Khởi động tất cả services (gateway + admin-dashboard + postgres + redis) docker-compose -f docker-compose.dev.yml up -d # Hoặc chỉ khởi động một service cụ thể docker-compose -f docker-compose.dev.yml up -d mcp-gateway docker-compose -f docker-compose.dev.yml up -d admin-dashboard ``` ### Xem logs real-time ```powershell # Xem logs của tất cả services docker-compose -f docker-compose.dev.yml logs -f # Xem logs của service cụ thể docker-compose -f docker-compose.dev.yml logs -f mcp-gateway docker-compose -f docker-compose.dev.yml logs -f admin-dashboard ``` ### Hot Reload - Không cần rebuild #### Backend (MCP Gateway) - **File mounted**: Toàn bộ source code được mount vào container - **Watcher**: `tsup --watch` tự động compile khi code thay đổi - **Không cần làm gì**: Chỉ cần sửa file `.ts` trong `src/`, server sẽ tự reload #### Frontend (Admin Dashboard) - **File mounted**: Toàn bộ source code được mount vào container - **Vite dev server**: Hot Module Replacement (HMR) tự động - **File watching**: Đã bật polling mode cho Windows/Mac - **Không cần làm gì**: Sửa file `.tsx`, `.ts`, `.css` và trình duyệt tự reload ### Cấu trúc Volumes ```yaml volumes: # Mount toàn bộ project để hot reload - ./:/app:delegated # Giữ node_modules của container (tránh conflict với host) - /app/node_modules - /app/admin-dashboard/node_modules ``` ### Ports - **Gateway API**: http://localhost:3000 - **Admin Dashboard**: http://localhost:5173 - **PostgreSQL**: localhost:5432 - **Redis**: localhost:6379 ### Environment Variables File `.env` sẽ tự động load. Các biến quan trọng: ```env # LLM API Keys OPENROUTER_API_KEY=your_key_here OPENAI_API_KEY=your_key_here ANTHROPIC_API_KEY=your_key_here # Database DB_HOST=postgres DB_NAME=ai_mcp_gateway_dev DB_USER=postgres DB_PASSWORD=postgres # Redis REDIS_HOST=redis REDIS_PORT=6379 ``` ### Debugging #### Debug Backend trong Container ```powershell # Exec vào container docker exec -it mcp-gateway-dev sh # Chạy lệnh debug npm run dev node --inspect=0.0.0.0:9229 dist/index.js ``` #### Debug Frontend Vite dev server đã expose port 5173, bạn có thể: - Dùng Chrome DevTools - Dùng VS Code debugger với port forwarding ### Rebuild chỉ khi cần Bạn **chỉ cần rebuild** khi: 1. Thay đổi `package.json` (thêm/xóa dependencies) 2. Thay đổi `Dockerfile` 3. Thay đổi file config như `tsconfig.json`, `vite.config.ts` ```powershell # Rebuild một service cụ thể docker-compose -f docker-compose.dev.yml up -d --build mcp-gateway # Rebuild tất cả docker-compose -f docker-compose.dev.yml up -d --build ``` ### Dọn dẹp ```powershell # Stop tất cả services docker-compose -f docker-compose.dev.yml down # Stop và xóa volumes (sẽ xóa database!) docker-compose -f docker-compose.dev.yml down -v # Stop và xóa images docker-compose -f docker-compose.dev.yml down --rmi all ``` ### Troubleshooting #### Hot reload không hoạt động? 1. **Kiểm tra volumes đã mount đúng chưa**: ```powershell docker exec -it mcp-gateway-dev ls -la /app ``` 2. **Xem logs để check watcher**: ```powershell docker-compose -f docker-compose.dev.yml logs -f mcp-gateway ``` 3. **Restart service**: ```powershell docker-compose -f docker-compose.dev.yml restart mcp-gateway ``` #### Container exit ngay sau khi start? ```powershell # Xem logs để tìm lỗi docker-compose -f docker-compose.dev.yml logs mcp-gateway ``` #### Database connection failed? ```powershell # Kiểm tra postgres đã ready chưa docker-compose -f docker-compose.dev.yml ps postgres # Xem logs postgres docker-compose -f docker-compose.dev.yml logs postgres ``` ## So sánh Dev vs Production | Feature | Dev (`docker-compose.dev.yml`) | Production (`docker-compose.yml`) | |---------|-------------------------------|-----------------------------------| | Source mount | ✅ Mount toàn bộ | ❌ Copy vào image | | Hot reload | ✅ Enabled | ❌ Disabled | | Rebuild on change | ❌ Không cần | ✅ Cần rebuild | | Build target | `dev` stage | `production` stage | | Database | `ai_mcp_gateway_dev` | `ai_mcp_gateway` | | Optimization | Development mode | Production optimized | | File watching | ✅ Polling enabled | ❌ N/A | ## Tips 1. **Sử dụng VS Code Remote Containers**: Attach vào container để code trực tiếp 2. **Watch logs liên tục**: Mở terminal riêng cho logs 3. **Không commit node_modules**: Đã có `.dockerignore` 4. **Backup database dev**: Định kỳ export data nếu cần ## Next Steps - Xem [DOCKER-QUICKSTART.md](docs/DOCKER-QUICKSTART.md) để setup lần đầu - Xem [API-GUIDE.md](docs/API-GUIDE.md) để test API - Xem [TESTING.md](docs/TESTING.md) để chạy tests

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/babasida246/ai-mcp-gateway'

If you have feedback or need assistance with the MCP directory API, please join our Discord server