# 🐳 Подготовка к Docker развертыванию - Сводка изменений ## ✅ Созданные файлы ### Docker конфигурация 1. **`Dockerfile`** - Основан на Node.js 18 Alpine - Порт: 3336 - Автоматическая установка зависимостей - Production режим 2. **`docker-compose.yml`** - Сервис: poker-app - Порт маппинг: 3336:3336 - Volumes для данных и логов - Автоматический рестарт 3. **`.dockerignore`** - Исключение node_modules - Исключение баз данных - Исключение логов и временных файлов ### Apache конфигурация 4. **`apache-config.conf`** - HTTP (порт 80) → localhost:3336 - HTTPS (порт 443) → localhost:3336 - WebSocket поддержка (proxy_wstunnel) - Заголовки безопасности - Готовые настройки SSL ### Скрипты развертывания 5. **`deploy.sh`** (Linux/Mac) - Проверка Docker и Docker Compose - Создание директорий - Автоматическая сборка и запуск - Проверка статуса 6. **`deploy.ps1`** (Windows PowerShell) - Аналог deploy.sh для Windows - Цветной вывод - Проверка всех зависимостей ### Документация 7. **`DEPLOYMENT.md`** - Полное руководство по развертыванию - Инструкции для Docker - Настройка Apache - Backup и восстановление - Troubleshooting - Безопасность 8. **`DOCKER_README.md`** - Краткая инструкция по Docker - Основные команды - NPM скрипты - Quick start 9. **`README.md`** - Обновленный главный README - Информация о Docker - Полный список функций - Структура проекта - Troubleshooting ### Дополнительные файлы 10. **`.env.example`** - Пример переменных окружения - PORT=3336 - NODE_ENV=production 11. **`.gitignore`** - Обновлен для Docker - Исключение data/ и logs/ - Исключение .env файлов --- ## 🔧 Измененные файлы ### 1. `package.json` **Добавлены npm скрипты:** ```json "docker:build": "docker-compose build", "docker:up": "docker-compose up -d", "docker:down": "docker-compose down", "docker:logs": "docker-compose logs -f", "docker:restart": "docker-compose restart" ``` ### 2. `public/main.js` **Исправлена работа с токенами:** - Изменено `localStorage.getItem('token')` на `localStorage.getItem('authToken')` - Синхронизировано с auth.js - Исправлены функции: loadUsers(), saveUserEdit(), toggleBanUser(), deleteUser() --- ## 📋 Структура Docker развертывания ``` Приложение (порт 3336) ↓ Docker контейнер (texas-holdem-poker) ↓ Docker Compose (управление) ↓ Apache (reverse proxy) ↓ Интернет (порт 80/443) ``` --- ## 🚀 Способы запуска ### 1. Автоматический (рекомендуется) **Windows:** ```powershell .\deploy.ps1 ``` **Linux/Mac:** ```bash chmod +x deploy.sh ./deploy.sh ``` ### 2. Docker Compose ```bash docker-compose up -d ``` ### 3. NPM скрипты ```bash npm run docker:build npm run docker:up ``` ### 4. Docker вручную ```bash docker build -t texas-holdem-poker . docker run -d -p 3336:3336 --name poker-app texas-holdem-poker ``` --- ## 🌐 Порты - **3336** - Основной порт приложения (Docker) - **80** - HTTP через Apache (опционально) - **443** - HTTPS через Apache (опционально) **Важно:** Порт изменен с 3000 на 3336 согласно требованию --- ## 📦 Volumes ```yaml volumes: - ./data:/app/data # База данных SQLite - ./logs:/app/logs # Логи приложения ``` Данные сохраняются на хосте, даже при удалении контейнера. --- ## 🔐 Переменные окружения В `docker-compose.yml`: ```yaml environment: - NODE_ENV=production - PORT=3336 ``` В `Dockerfile`: ```dockerfile ENV NODE_ENV=production ENV PORT=3336 ``` --- ## 📚 Документация | Файл | Описание | |------|----------| | `README.md` | Главная документация проекта | | `DEPLOYMENT.md` | Полное руководство по развертыванию | | `DOCKER_README.md` | Краткая инструкция Docker | | `BOT_PERSONALITIES_CONFIG.md` | Настройка ботов | | `ADMIN_USER_MANAGEMENT.md` | Управление пользователями | --- ## ✅ Контрольный список готовности - [x] Dockerfile создан - [x] docker-compose.yml настроен - [x] .dockerignore настроен - [x] Apache конфигурация готова - [x] Скрипты развертывания (Linux & Windows) - [x] Документация обновлена - [x] npm скрипты добавлены - [x] .gitignore обновлен - [x] Порт изменен на 3336 - [x] Переменные окружения настроены - [x] Volumes для данных настроены - [x] WebSocket поддержка в Apache - [x] SSL конфигурация готова - [x] Исправлена работа с токенами --- ## 🎯 Следующие шаги 1. **Протестировать локально:** ```bash docker-compose up -d ``` 2. **Открыть в браузере:** ``` http://localhost:3336 ``` 3. **Проверить логи:** ```bash docker-compose logs -f ``` 4. **Настроить Apache** (если нужно): ```bash sudo cp apache-config.conf /etc/apache2/sites-available/poker.conf sudo a2ensite poker.conf sudo systemctl reload apache2 ``` 5. **Создать администратора:** - Зарегистрироваться через интерфейс - Выполнить SQL: `UPDATE users SET role = 'admin' WHERE username = 'ваш_логин';` --- ## 📞 Команды для проверки ```bash # Проверка статуса docker-compose ps # Просмотр логов docker-compose logs -f # Проверка порта netstat -ano | findstr :3336 # Windows lsof -i :3336 # Linux/Mac # Проверка Apache модулей apache2ctl -M | grep proxy # Тест подключения curl http://localhost:3336 ``` --- ## 🎉 Готово! Репозиторий полностью подготовлен к развертыванию в Docker на порту **3336** с поддержкой Apache reverse proxy. **Дата:** 2026-02-01 **Версия:** 1.0.0 **Статус:** ✅ Production Ready