282 lines
7.2 KiB
Markdown
282 lines
7.2 KiB
Markdown
# 🐳 Подготовка к 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
|