Версия 0.1.0 - ранний релиз, пока не тестировалось. Тесты будут добавлены в версии 1.0.0.
PC Club Management System с аналитикой, Telegram ботом и WebRTC видеопотоком
.\install.ps1Режимы:
[0]Docker Compose (PostgreSQL + Redis + Server)[1]Сервер (полная установка)[2]Админ-панель[3]ПК в зале (Agent)
sudo ./install.shgit clone https://github.com/L1ghtsitte/duster.git
cd duster
docker compose up -d┌─────────────────────────────────────────────────────────┐
│ Админ-панель (React) │
│ http://localhost:3847/admin │
└─────────────────────────┬───────────────────────────────┘
│
┌─────────────────────────▼───────────────────────────────┐
│ API Сервер (Fastify + Node.js) │
│ :3847 HTTP / :3847 WebSocket / WebRTC │
├─────────────────────────────────────────────────────────┤
│ WebRTC видеопоток (H.264/NVENC) │
│ JWT аутентификация │
│ Мультитенантность (clubId) │
│ Telegram Bot API │
└──────────────┬──────────────┬──────────────┬─────────────┘
│ │ │
┌──────▼──────┐ ┌─────▼─────┐ ┌────▼────┐
│ PostgreSQL │ │ Redis │ │Telegram │
│ (данные) │ │ (кеш) │ │(бот) │
└─────────────┘ └─────────────┘ └─────────┘
| Компонент | Технологии | Назначение |
|---|---|---|
| Agent | .NET 8, C# | Мониторинг, управление ПК в зале |
| Server | Node.js, Fastify, TypeScript | API сервер, бизнес-логика |
| Admin | React 19, Vite | Веб-интерфейс для администраторов |
| Game Hub | WPF / Web | Клиент для входа игроков |
| Telegram | Bot API, Grammy | Уведомления, пополнение, рефералы |
- WoL - удалённое включение
- Блокировка/разблокировка
- WebRTC видеопоток (JPEG/H.264)
- Аппаратное ускорение NVIDIA NVENC
- Мониторинг CPU/GPU/RAM
- Регистрация, профили, аватары
- QR вход
- Таймер сессий
- История поиграть
- Тарифы и пакеты
- Кассовые смены
- Telegram Stars пополнение
- Система бонусов и лояльности
- Реферальная программа
- Хитмап загруженности
- Статистика по часам
- Отчёты по сменам
- Экспорт PDF/Excel
- JWT токены
- 2FA для админов
- Аудит операций
- Multi-tenant изоляция
Node.js 20+ TypeScript Fastify PostgreSQL
│ │ │ │
React 19 Prisma Redis .NET 8
│ │ │ │
Vite SSE/WebSocket WebRTC WPF
duster/
├── apps/
│ ├── client-agent/ # .NET агент для ПК
│ └── client-shell/ # WPF Game Hub
├── packages/
│ ├── server/ # Fastify API
│ ├── admin-web/ # React админка
│ ├── client-web/ # Веб клиент для зала
│ ├── player-pwa/ # PWA для игроков
│ ├── shared/ # Общие типы
│ └── i18n/ # Локализация (EN/RU/ZH)
├── scripts/
│ ├── install.ps1 # Windows установщик
│ ├── install.sh # Linux установщик
│ └── setup-nginx-certbot.sh
└── docker-compose.yml # Production стек
- Node.js 20+
- PostgreSQL 13+
- Redis 6+
- 2+ ГБ RAM
- Docker (опционально)
- Windows 10/11
- .NET 8 Runtime
- 2+ ГБ RAM
- NVIDIA GPU (опционально) для H.264 NVENC
# Установка зависимостей
npm install
# Запуск всех компонентов
npm run dev
# Отдельные компоненты
npm run dev:server # API сервер
npm run dev:admin # Админка
npm run dev:client-web
# Сборка
npm run build
# База данных
npm run db:migrate
npm run db:seed| Метод | Путь | Описание |
|---|---|---|
| GET | /api/health | Проверка здоровья сервера |
| POST | /auth/admin/login | Вход админа |
| GET | /admin/computers | Список ПК |
| GET | /ws | WebSocket видеопоток |
# Сервер
DUSTER_HOST=0.0.0.0
DUSTER_PORT=3847
DUSTER_JWT_SECRET=случайная-строка-32-символа
DUSTER_PUBLIC_URL=https://your-club.example
# База данных
DATABASE_URL=postgresql://duster:duster@localhost:5432/duster
REDIS_URL=redis://localhost:6379
# Telegram (опционально)
TELEGRAM_BOT_TOKEN=токен-от-botfather- GitHub: https://github.com/L1ghtsitte/duster
- Telegram канал: https://t.me/duster_pc
- Связь с автором: https://t.me/pisunyra?text=1000-7
MIT License - свободное использование и модификация