|
|
||
|---|---|---|
| public | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| ADMIN_USER_MANAGEMENT.md | ||
| ARCHITECTURE.md | ||
| BOT_PERSONALITIES_CONFIG.md | ||
| CHECKLIST.md | ||
| CONGRATULATIONS_SYSTEM.md | ||
| DEPLOYMENT.md | ||
| DOCKER_README.md | ||
| DOCKER_SETUP_SUMMARY.md | ||
| Dockerfile | ||
| LICENSE | ||
| LLM_CONTEXT_EXAMPLE.md | ||
| PLAYER_BALANCE_DISPLAY.md | ||
| README.md | ||
| SHARING_GUIDE.md | ||
| TESTING.md | ||
| apache-config.conf | ||
| database.js | ||
| deploy.ps1 | ||
| deploy.sh | ||
| docker-compose.yml | ||
| package-lock.json | ||
| package.json | ||
| poker.db | ||
| server.js | ||
README.md
🃏 Texas Hold'em No-Limit Poker
Полнофункциональная онлайн-игра в покер с поддержкой мультиплеера, ИИ-ботами и интеграцией LLM для реалистичного общения.
✨ Особенности
- 🎮 Мультиплеер: 2-6 игроков в режиме реального времени
- 🤖 ИИ-боты: 8 уникальных личностей с разными стилями игры
- 💬 LLM-чат: Реалистичное общение ботов через Ollama/LM Studio/OpenAI
- 👤 Система авторизации: Регистрация, вход, гостевой режим
- 👑 Админ-панель: Управление ботами, пользователями и настройками
- 🎨 Современный UI: Glassmorphism дизайн с анимациями
- 🐳 Docker: Готов к развертыванию в один клик
🚀 Быстрый старт
Вариант 1: Docker (Рекомендуется)
Windows (PowerShell):
.\deploy.ps1
Linux/Mac:
chmod +x deploy.sh
./deploy.sh
Или вручную:
docker-compose up -d
Приложение будет доступно: http://localhost:3336
Вариант 2: Локальный запуск
# Установка зависимостей
npm install
# Запуск сервера
npm start
Приложение будет доступно: http://localhost:3000
📋 Требования
Docker (рекомендуется)
- Docker 20.10+
- Docker Compose 1.29+
Локальный запуск
- Node.js 16+
- npm 8+
🎮 Игровые режимы
🎯 Одиночная игра
- Игра против 1-5 ИИ-ботов
- 3 уровня сложности ИИ
- 8 уникальных личностей ботов
- Настраиваемые системные промпты
🌐 Мультиплеер
- Создание приватных комнат
- Поделиться ссылкой для присоединения
- Чат в реальном времени
- До 6 игроков одновременно
🤖 ИИ-боты с личностями
- Виктор "Акула" - Агрессивный профессионал
- Анна "Блефер" - Мастер обмана
- Сергей "Математик" - Аналитик-стратег
- Мария "Рок" - Консервативный игрок
- Дмитрий "Маньяк" - Непредсказуемый агрессор
- Елена "Читательница" - Психолог за столом
- Игорь "Новичок" - Неопытный оптимист
- Ольга "Тильт" - Эмоциональный игрок
👑 Админ-панель
Функции администратора:
- ⚙️ Настройки LLM: Подключение Ollama/LM Studio/OpenAI
- 🤖 Промпты ботов: Настройка личностей и поведения
- 📋 Логи действий: Мониторинг активности пользователей
- 👥 Управление пользователями:
- Просмотр всех пользователей
- Статистика (IP, последняя игра)
- Изменение ролей (admin/user)
- Блокировка пользователей
- Удаление аккаунтов
Первый администратор
При первом запуске создайте админа:
-- Используйте любой SQLite клиент для изменения БД
UPDATE users SET role = 'admin' WHERE username = 'ваш_логин';
🐳 Docker развертывание
Структура проекта
onlinepocker/
├── 📄 Dockerfile # Docker образ
├── 📄 docker-compose.yml # Docker Compose конфигурация
├── 📄 .dockerignore # Исключения для Docker
├── 📄 apache-config.conf # Настройка Apache
├── 📄 deploy.sh # Скрипт развертывания (Linux/Mac)
├── 📄 deploy.ps1 # Скрипт развертывания (Windows)
├── 📚 DEPLOYMENT.md # Полная документация
└── 📚 DOCKER_README.md # Краткая инструкция Docker
Основные команды
# Запуск
docker-compose up -d
# Остановка
docker-compose down
# Просмотр логов
docker-compose logs -f
# Перезапуск
docker-compose restart
# Пересборка
docker-compose up -d --build
NPM скрипты
npm run docker:build # Сборка образа
npm run docker:up # Запуск контейнера
npm run docker:down # Остановка контейнера
npm run docker:logs # Просмотр логов
npm run docker:restart # Перезапуск
🌐 Настройка Apache
Для проксирования через Apache (порт 80/443 → 3336):
# Включение модулей
sudo a2enmod proxy proxy_http proxy_wstunnel rewrite headers ssl
# Копирование конфигурации
sudo cp apache-config.conf /etc/apache2/sites-available/poker.conf
# Включение сайта
sudo a2ensite poker.conf
# Перезагрузка Apache
sudo systemctl reload apache2
Подробнее: DEPLOYMENT.md
🔧 Конфигурация
Переменные окружения
| Переменная | По умолчанию | Описание |
|---|---|---|
PORT |
3336 | Порт сервера |
NODE_ENV |
production | Режим работы |
Настройка LLM (в админ-панели)
- Выберите провайдера: Ollama / LM Studio / OpenAI
- Укажите API URL (например,
http://localhost:11434) - Выберите модель (например,
llama3.2) - Сохраните настройки
Настройка промптов ботов
- Войдите как администратор
- Откройте "🤖 Промпты ботов"
- Выберите бота
- Отредактируйте системный промпт
- Сохраните изменения
📦 Технологии
Backend
- Node.js - Серверная платформа
- Express.js - REST API
- WebSocket (ws) - Реальное время
- SQLite (sql.js) - База данных
- bcryptjs - Хеширование паролей
- jsonwebtoken - JWT авторизация
Frontend
- Vanilla JavaScript - Без фреймворков
- CSS3 - Glassmorphism дизайн
- HTML5 - Семантическая разметка
DevOps
- Docker - Контейнеризация
- Docker Compose - Оркестрация
- Apache - Reverse proxy
📁 Структура проекта
onlinepocker/
├── 📂 public/ # Фронтенд
│ ├── index.html # Главная страница
│ ├── main.js # Основная логика
│ ├── game.js # Игровая логика
│ ├── ai.js # ИИ и личности ботов
│ ├── auth.js # Авторизация
│ └── styles.css # Стили
├── 📂 data/ # База данных (создается автоматически)
│ └── poker.db
├── server.js # WebSocket сервер
├── database.js # Работа с БД
├── package.json # Зависимости
├── Dockerfile # Docker образ
├── docker-compose.yml # Docker Compose
└── 📚 Документация
├── DEPLOYMENT.md # Развертывание
├── DOCKER_README.md # Docker инструкции
├── BOT_PERSONALITIES_CONFIG.md
└── ADMIN_USER_MANAGEMENT.md
🔐 Безопасность
- ✅ JWT токены с истечением
- ✅ Bcrypt хеширование паролей
- ✅ Middleware авторизации
- ✅ Проверка прав администратора
- ✅ Логирование действий
- ✅ Блокировка пользователей
- ✅ IP tracking
💾 Backup базы данных
Ручной backup
# Docker
docker cp texas-holdem-poker:/app/data/poker.db ./backup-$(date +%Y%m%d).db
# Локально
cp data/poker.db data/poker.db.backup
Автоматический backup (cron)
# Каждый день в 3:00
0 3 * * * /opt/poker-backup.sh
Подробнее: DEPLOYMENT.md
📖 Документация
- DEPLOYMENT.md - Полное руководство по развертыванию
- DOCKER_README.md - Быстрый старт с Docker
- BOT_PERSONALITIES_CONFIG.md - Настройка ботов
- ADMIN_USER_MANAGEMENT.md - Управление пользователями
🐛 Troubleshooting
Порт занят
# Проверка
netstat -ano | findstr :3336 # Windows
lsof -i :3336 # Linux/Mac
# Решение
docker-compose down
Проблемы с WebSocket
# Проверка модулей Apache
apache2ctl -M | grep proxy
Права доступа (Linux)
sudo chown -R $USER:$USER data/
sudo chmod 755 data/
📞 Поддержка
- Проверьте логи:
docker-compose logs -f - Проверьте статус:
docker-compose ps - Прочитайте документацию:
DEPLOYMENT.md
📝 Лицензия
MIT License - свободно для личного использования
🎯 Краткая инструкция
Для локальной разработки
npm install
npm start
# Откройте http://localhost:3000
Для production (Docker)
docker-compose up -d
# Откройте http://localhost:3336
Создание администратора
# 1. Зарегистрируйтесь через интерфейс
# 2. Подключитесь к БД и выполните:
UPDATE users SET role = 'admin' WHERE username = 'ваш_логин';
Версия: 1.0.0
Дата: 2026-02-01
Статус: ✅ Готов к production
🃏 Хорошей игры!