LLM slop Cursor-поделка для видеоконференций. Проект написан на Go, ест мало оперативки и в целом задуман как простой self-hosted вариант, который можно поднять для себя или адаптировать под свои задачи.
Если кому-то пригодится, можно брать и использовать как основу.
Небольшой WebRTC-сервис с фронтендом на Vue и бэкендом на Go.
Go здесь отвечает за сигнализацию, раздачу статики и API для музыкального плеера, а в браузере работает сама realtime-часть.
- ✅ Чат
- ✅ Статусы
- ✅ Мобильная версия
- ✅ Стримы с выбором качества
- ✅ Возможность ставить музыку из YouTube
- 🚧 Видео с вебки (в карточках участников)
- ✅ Комнаты с паролем
- ✅ Раздельная регулировка громкости голоса и стрима экрана
- ✅ Миниигры (угадай аниме по картинке / по опенингу)
- Backend: Go
- Frontend: Vue 3 + Vite
- Realtime: WebSocket + WebRTC
- Music:
yt-dlp+ffmpeg - Deployment: Docker Compose + Coturn
- Небольшой и относительно простой код без тяжёлой инфраструктуры
- Низкое потребление памяти за счёт Go-бэкенда
- Можно быстро развернуть на своём сервере
- Можно использовать как базу для своего pet-project или внутреннего инструмента
Подробная документация по деплою и CI/CD хранится локально и не лежит в публичном репозитории.
Для локального запуска достаточно:
cp env.example .env
docker compose up --build -dcd backend
go mod tidy
go run .По умолчанию сервер слушает http://localhost:8080.
cd frontend
npm install
npm run devVite dev-сервер поднимется на http://localhost:5173 и будет проксировать /ws на Go-бэкенд.
Собрать фронтенд:
cd frontend
npm install
npm run buildПосле сборки статика попадёт в backend/static.
Запустить бэкенд:
cd backend
go mod tidy
go run .Основные переменные:
PORT— порт приложения внутри контейнераHOST_PORT— внешний порт на хостеSTATIC_DIR— директория со статикойTZ— таймзонаTURN_PUBLIC_IP— внешний IP для TURNTURN_PRIVATE_IP— внутренний IP для TURNTURN_USER— логин TURNTURN_PASS— пароль TURN
Шаблон лежит в env.example.
- Это не enterprise-решение и не законченный продукт
- Интерфейс, логика и архитектура местами довольно экспериментальные
- Проект больше про "быстро собрать рабочую штуку", чем про идеальную вылизанную платформу
Если проект тебе полезен, используй как хочешь в рамках своей лицензии/форка/репозитория. При необходимости спокойно допиливай под себя.