Nuxt 4 frontend for call.openbomber.com
- TypeScript 44.6%
- Vue 40.2%
- Java 5.2%
- JavaScript 5%
- CSS 4.5%
- Other 0.5%
ArgumentValidationError rejected every send/mirror/friend-request
mutation since
|
||
|---|---|---|
| .cache-screenshots | ||
| .fallow | ||
| android | ||
| app | ||
| build | ||
| convex | ||
| dist-noop | ||
| docs | ||
| e2e | ||
| electron | ||
| public | ||
| resources | ||
| scripts | ||
| server | ||
| shared | ||
| test | ||
| .dockerignore | ||
| .env.example | ||
| .fallowrc.json | ||
| .gitignore | ||
| .mcp.json | ||
| .oxfmtrc.json | ||
| .oxlintrc.json | ||
| AGENTS.md | ||
| bun.lock | ||
| capacitor.config.ts | ||
| CLAUDE.md | ||
| Dockerfile | ||
| eslint.config.ts | ||
| lobby-desktop.png | ||
| nuxt.config.ts | ||
| opencode.json | ||
| package.json | ||
| PLAN.md | ||
| playwright.config.ts | ||
| posthog-setup-report.md | ||
| PUSH.md | ||
| README.md | ||
| RELEASING.md | ||
| skills-lock.json | ||
| tsconfig.json | ||
| vitest.config.ts | ||
dashka.live
Видеозвонки с AI-напарницей Дашей. Self-hosted на LiveKit + Hermes + Cartesia / Gemini Realtime.
Stack
- Nuxt 4 + Bun runtime
- @nuxt/ui v4 (Luma design — glassy, soft, rounded-lg)
- livekit-client + livekit-server-sdk для WebRTC SFU
- Pinia + VueUse
Архитектура
Браузер ─→ wss://livekit.dashka.live (signaling)
─→ UDP 50000-50100 (RTP media)
─→ /api/livekit/token (Nuxt server, минтит JWT)
─→ /api/livekit/record-{start,stop} (Egress API)
LiveKit Egress ─→ MinIO bucket "calls" (запись MP4)
─→ webhook → n8n → Whisper → Ollama → email summary
Локальная разработка
cp .env.example .env
bun install
bun run dev
Открой http://localhost:3000.
Деплой
Через Coolify (Application → Public Repository → Dockerfile) или раздельным docker-compose.
Env vars:
LIVEKIT_API_KEY— берёшь у админаLIVEKIT_API_SECRETNUXT_PUBLIC_LIVEKIT_URL—wss://livekit.dashka.live
Что есть
- Лобби: создать/подключиться к комнате
- PreJoin: превью камеры + микрофона до входа
- Комната: адаптивная сетка (1, 2, 4, 6, 9, 12+ участников)
- Контролы: mic / cam / screen-share / record / participants / chat / link / leave
- Speaking-индикатор (пульс ring)
- Avatar-fallback при выключенной камере
- Recording с автоматической отправкой на AI-пайплайн
- Re-connection индикация
- Mobile-friendly (controls размер L, viewport-fit, fixed footer)
Что докрутить
- Чат в комнате (LiveKit DataChannel)
- Виртуальный фон / blur (LiveKit Background)
- Smart-layout: pin speaker, gallery vs spotlight
- Шумоподавление (livekit-client built-in или RNNoise)
- PWA (push-уведомления о звонке)
- AI-summary inline (показать прямо после звонка)
- Авторизация (Authentik / Pocket Id если решишь)
- Заглушение участника (host control)
- Live-транскрипция (LiveKit Agents + Whisper streaming)