Files
NeveTimePanel/DOCKER_FIX.md
arkonsadter c0125f3962
All checks were successful
continuous-integration/drone/push Build is passing
fix(docker): simplify deployment with nginx fixes and alternative compose config
- Update nginx/default.conf with complete configuration including events section
- Add docker-compose-simple.yml for simplified deployment without nginx
- Update docker-compose.yml to properly mount nginx configuration
- Revise DOCKER_FIX.md with clearer instructions and recommended solutions
- Provide three deployment variants: with nginx, without nginx (recommended), and quick fix
- Include data folder structure and environment setup documentation
This change addresses nginx configuration errors and FileNotFoundError by providing both a corrected nginx setup and a simplified alternative deployment method without nginx for faster troubleshooting and deployment.
2026-01-17 10:50:00 +06:00

137 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Исправление Docker ошибок
## Проблемы
1. **Nginx**: `no "events" section in configuration`
2. **Backend**: `FileNotFoundError: [Errno 2] No such file or directory: 'backend/data'`
## ✅ Исправления сделаны
### 1. Исправлена nginx конфигурация
- Обновлен файл `nginx/default.conf` с полной конфигурацией включая секцию `events`
- Обновлен `docker-compose.yml` для монтирования как основной конфигурации nginx
### 2. Исправлен путь к папке данных
- В `backend/daemons.py` изменен путь с `backend/data/daemons.json` на `data/daemons.json`
- Добавлена проверка существования файла пользователей
### 3. Создан упрощенный docker-compose
- Файл `docker-compose-simple.yml` без nginx для быстрого запуска
## Решения
### Вариант 1: С исправленным nginx
1. **Скопируйте обновленные файлы**:
- `backend/daemons.py`
- `nginx/default.conf`
- `docker-compose.yml`
2. **Создайте папку data**:
```bash
mkdir -p data
touch data/users.json
touch data/tickets.json
touch data/daemons.json
```
3. **Перезапустите**:
```bash
docker-compose down
docker-compose up --build -d
```
### Вариант 2: Без nginx (РЕКОМЕНДУЕТСЯ)
1. **Используйте упрощенный docker-compose**:
```bash
# Остановите текущие контейнеры
docker-compose down
# Создайте папку data
mkdir -p data
touch data/users.json
touch data/tickets.json
touch data/daemons.json
# Запустите с упрощенной конфигурацией
docker-compose -f docker-compose-simple.yml up --build -d
```
2. **Панель будет доступна напрямую на порту 80**
### Вариант 3: Быстрое исправление текущей проблемы
Если не хотите менять файлы:
```bash
# 1. Остановите nginx
docker-compose stop nginx
# 2. Создайте папку data
mkdir -p data
echo '{"admin":{"username":"admin","password":"$2b$12$PAaomoUWn3Ip5ov.S/uYPeTIRiDMq7DbA57ahyYQnw3QHT2zuYMlG","role":"owner","servers":[],"permissions":{"manage_users":true,"manage_roles":true,"manage_servers":true,"manage_tickets":true,"manage_files":true,"delete_users":true,"view_all_resources":true},"resource_access":{"servers":[],"tickets":[],"files":[]}}}' > data/users.json
echo '{}' > data/tickets.json
echo '{}' > data/daemons.json
# 3. Измените порты mc-panel в docker-compose.yml
# Замените "8000:8000" на "80:8000"
# 4. Перезапустите только mc-panel
docker-compose up -d mc-panel
```
## Проверка
После любого из вариантов:
1. **Проверьте статус**:
```bash
docker-compose ps
# или для упрощенной версии:
docker-compose -f docker-compose-simple.yml ps
```
2. **Проверьте логи**:
```bash
docker-compose logs mc-panel
```
3. **Откройте панель**:
- Перейдите на IP сервера
- Должна открыться панель управления
- Логин: `admin`, пароль: `Admin`
## Структура файлов
```
📁 Проект
├── 📁 nginx/
│ └── default.conf # ✅ Полная nginx конфигурация
├── 📁 backend/
│ └── daemons.py # ✅ Исправлен путь к data/
├── docker-compose.yml # ✅ С nginx
├── docker-compose-simple.yml # ✅ Без nginx (рекомендуется)
└── 📁 data/ # Создать вручную
├── users.json
├── tickets.json
└── daemons.json
```
## Рекомендация
**Используйте Вариант 2 (docker-compose-simple.yml)** - это самое простое и надежное решение:
1. Нет проблем с nginx
2. Прямой доступ к панели
3. Меньше компонентов = меньше проблем
4. Панель доступна на порту 80
Если нужен nginx (для SSL, доменов и т.д.), используйте Вариант 1 с исправленной конфигурацией.
---
**Backend уже работает! Проблема только в nginx. Используйте упрощенную версию без nginx для быстрого запуска.**