# 🃏 Texas Hold'em No-Limit Poker Полнофункциональная онлайн-игра в покер с поддержкой мультиплеера, ИИ-ботами и интеграцией LLM для реалистичного общения. ## ✨ Особенности - 🎮 **Мультиплеер**: 2-6 игроков в режиме реального времени - 🤖 **ИИ-боты**: 8 уникальных личностей с разными стилями игры - 💬 **LLM-чат**: Реалистичное общение ботов через Ollama/LM Studio/OpenAI - 👤 **Система авторизации**: Регистрация, вход, гостевой режим - 👑 **Админ-панель**: Управление ботами, пользователями и настройками - 🎨 **Современный UI**: Glassmorphism дизайн с анимациями - 🐳 **Docker**: Готов к развертыванию в один клик ## 🚀 Быстрый старт ### Вариант 1: Docker (Рекомендуется) **Windows (PowerShell):** ```powershell .\deploy.ps1 ``` **Linux/Mac:** ```bash chmod +x deploy.sh ./deploy.sh ``` **Или вручную:** ```bash docker-compose up -d ``` Приложение будет доступно: **http://localhost:3336** ### Вариант 2: Локальный запуск ```bash # Установка зависимостей 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 игроков одновременно ### 🤖 ИИ-боты с личностями 1. **Виктор "Акула"** - Агрессивный профессионал 2. **Анна "Блефер"** - Мастер обмана 3. **Сергей "Математик"** - Аналитик-стратег 4. **Мария "Рок"** - Консервативный игрок 5. **Дмитрий "Маньяк"** - Непредсказуемый агрессор 6. **Елена "Читательница"** - Психолог за столом 7. **Игорь "Новичок"** - Неопытный оптимист 8. **Ольга "Тильт"** - Эмоциональный игрок ## 👑 Админ-панель ### Функции администратора: - **⚙️ Настройки LLM**: Подключение Ollama/LM Studio/OpenAI - **🤖 Промпты ботов**: Настройка личностей и поведения - **📋 Логи действий**: Мониторинг активности пользователей - **👥 Управление пользователями**: - Просмотр всех пользователей - Статистика (IP, последняя игра) - Изменение ролей (admin/user) - Блокировка пользователей - Удаление аккаунтов ### Первый администратор При первом запуске создайте админа: ```sql -- Используйте любой 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 ``` ### Основные команды ```bash # Запуск docker-compose up -d # Остановка docker-compose down # Просмотр логов docker-compose logs -f # Перезапуск docker-compose restart # Пересборка docker-compose up -d --build ``` ### NPM скрипты ```bash 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): ```bash # Включение модулей 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 (в админ-панели) 1. Выберите провайдера: Ollama / LM Studio / OpenAI 2. Укажите API URL (например, `http://localhost:11434`) 3. Выберите модель (например, `llama3.2`) 4. Сохраните настройки ### Настройка промптов ботов 1. Войдите как администратор 2. Откройте "🤖 Промпты ботов" 3. Выберите бота 4. Отредактируйте системный промпт 5. Сохраните изменения ## 📦 Технологии ### 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 ```bash # 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) ```bash # Каждый день в 3:00 0 3 * * * /opt/poker-backup.sh ``` Подробнее: `DEPLOYMENT.md` ## 📖 Документация - **[DEPLOYMENT.md](DEPLOYMENT.md)** - Полное руководство по развертыванию - **[DOCKER_README.md](DOCKER_README.md)** - Быстрый старт с Docker - **[BOT_PERSONALITIES_CONFIG.md](BOT_PERSONALITIES_CONFIG.md)** - Настройка ботов - **[ADMIN_USER_MANAGEMENT.md](ADMIN_USER_MANAGEMENT.md)** - Управление пользователями ## 🐛 Troubleshooting ### Порт занят ```bash # Проверка netstat -ano | findstr :3336 # Windows lsof -i :3336 # Linux/Mac # Решение docker-compose down ``` ### Проблемы с WebSocket ```bash # Проверка модулей Apache apache2ctl -M | grep proxy ``` ### Права доступа (Linux) ```bash sudo chown -R $USER:$USER data/ sudo chmod 755 data/ ``` ## 📞 Поддержка 1. Проверьте логи: `docker-compose logs -f` 2. Проверьте статус: `docker-compose ps` 3. Прочитайте документацию: `DEPLOYMENT.md` ## 📝 Лицензия MIT License - свободно для личного использования --- ## 🎯 Краткая инструкция ### Для локальной разработки ```bash npm install npm start # Откройте http://localhost:3000 ``` ### Для production (Docker) ```bash docker-compose up -d # Откройте http://localhost:3336 ``` ### Создание администратора ```bash # 1. Зарегистрируйтесь через интерфейс # 2. Подключитесь к БД и выполните: UPDATE users SET role = 'admin' WHERE username = 'ваш_логин'; ``` --- **Версия:** 1.0.0 **Дата:** 2026-02-01 **Статус:** ✅ Готов к production 🃏 **Хорошей игры!**