Go to file
ur002 4b22d728eb feat(ci): add GitLab CI configuration for code review stage 2026-02-01 21:15:08 +03:00
public feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
.dockerignore feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
.env.example feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
.gitignore feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
.gitlab-ci.yml feat(ci): add GitLab CI configuration for code review stage 2026-02-01 21:15:08 +03:00
ADMIN_USER_MANAGEMENT.md feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
ARCHITECTURE.md feat: Add comprehensive Docker deployment checklist and configuration files 2026-02-01 21:10:25 +03:00
BOT_PERSONALITIES_CONFIG.md Add game info panel styles and bot personality configuration documentation 2026-02-01 21:09:01 +03:00
CHECKLIST.md feat: Add comprehensive Docker deployment checklist and configuration files 2026-02-01 21:10:25 +03:00
CONGRATULATIONS_SYSTEM.md feat: add player balance display and congratulatory system for strong hands 2026-02-01 21:09:01 +03:00
DEPLOYMENT.md feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
DOCKER_README.md feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
DOCKER_SETUP_SUMMARY.md feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
Dockerfile feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
LICENSE Initial commit 2026-02-01 18:02:51 +00:00
LLM_CONTEXT_EXAMPLE.md feat: add player balance display and congratulatory system for strong hands 2026-02-01 21:09:01 +03:00
PLAYER_BALANCE_DISPLAY.md feat: add player balance display and congratulatory system for strong hands 2026-02-01 21:09:01 +03:00
README.md feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
SHARING_GUIDE.md feat(sharing): implement room link sharing functionality and update sharing guide 2026-02-01 21:09:01 +03:00
TESTING.md feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
apache-config.conf feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
database.js feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
deploy.ps1 feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
deploy.sh feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
docker-compose.yml feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
package-lock.json feat(auth): implement client-side authentication module for Texas Hold'em game 2026-02-01 21:09:01 +03:00
package.json feat(auth): implement client-side authentication module for Texas Hold'em game 2026-02-01 21:09:01 +03:00
poker.db feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00
server.js feat: Implement user management system in admin panel 2026-02-01 21:10:25 +03:00

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 игроков одновременно

🤖 ИИ-боты с личностями

  1. Виктор "Акула" - Агрессивный профессионал
  2. Анна "Блефер" - Мастер обмана
  3. Сергей "Математик" - Аналитик-стратег
  4. Мария "Рок" - Консервативный игрок
  5. Дмитрий "Маньяк" - Непредсказуемый агрессор
  6. Елена "Читательница" - Психолог за столом
  7. Игорь "Новичок" - Неопытный оптимист
  8. Ольга "Тильт" - Эмоциональный игрок

👑 Админ-панель

Функции администратора:

  • ⚙️ Настройки 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 (в админ-панели)

  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

# 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

📖 Документация

🐛 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/

📞 Поддержка

  1. Проверьте логи: docker-compose logs -f
  2. Проверьте статус: docker-compose ps
  3. Прочитайте документацию: 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

🃏 Хорошей игры!