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

4.7 KiB
Raw Permalink Blame History

Исправление 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:

    mkdir -p data
    touch data/users.json
    touch data/tickets.json
    touch data/daemons.json
    
  3. Перезапустите:

    docker-compose down
    docker-compose up --build -d
    

Вариант 2: Без nginx (РЕКОМЕНДУЕТСЯ)

  1. Используйте упрощенный docker-compose:

    # Остановите текущие контейнеры
    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: Быстрое исправление текущей проблемы

Если не хотите менять файлы:

# 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. Проверьте статус:

    docker-compose ps
    # или для упрощенной версии:
    docker-compose -f docker-compose-simple.yml ps
    
  2. Проверьте логи:

    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 для быстрого запуска.