Files
NeveTimePanel/DOCKER_FIX.md
arkonsadter e02789ef53
All checks were successful
continuous-integration/drone/push Build is passing
fix(docker): resolve nginx and backend path configuration issues
- Add nginx/default.conf with simplified configuration to fix "no events section" error
- Update docker-compose.yml to mount nginx/default.conf instead of nginx.conf
- Fix backend/daemons.py data path from backend/data/daemons.json to data/daemons.json
- Improve users.json path detection with fallback logic in daemons.py
- Add servers directory to .gitignore
- Create DOCKER_FIX.md documentation with troubleshooting steps and solutions
- Ensure data directory is created automatically when backend starts
2026-01-17 10:32:46 +06:00

4.7 KiB
Raw 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 с упрощенной конфигурацией
  • Обновлен docker-compose.yml для использования правильного пути

2. Исправлен путь к папке данных

  • В backend/daemons.py изменен путь с backend/data/daemons.json на data/daemons.json
  • Добавлена проверка существования файла пользователей

Что нужно сделать

Вариант 1: Обновить файлы и перезапустить

  1. Скопируйте обновленные файлы:

    • backend/daemons.py
    • nginx/default.conf (новый файл)
    • docker-compose.yml
  2. Остановите контейнеры:

    docker-compose down
    
  3. Пересоберите и запустите:

    docker-compose up --build -d
    

Вариант 2: Быстрое исправление (без пересборки)

  1. Остановите только nginx:

    docker-compose stop nginx
    
  2. Создайте папку data в контейнере mc-panel:

    docker exec mc-panel mkdir -p /app/data
    
  3. Запустите nginx с новой конфигурацией:

    docker-compose up nginx -d
    

Проверка

После исправления:

  1. Проверьте статус контейнеров:

    docker-compose ps
    

    Должно быть:

    NAME              STATE
    mc-panel          Up
    mc-panel-nginx    Up
    
  2. Проверьте логи:

    docker-compose logs mc-panel
    docker-compose logs nginx
    
  3. Откройте панель:

    • Перейдите на IP сервера (порт 80)
    • Должна открыться панель управления

Структура файлов после исправления

📁 Проект
├── 📁 nginx/
│   ├── default.conf     # ✅ Новая упрощенная конфигурация
│   └── nginx.conf       # Старая (не используется)
│
├── 📁 backend/
│   └── daemons.py       # ✅ Исправлен путь к data/
│
├── docker-compose.yml   # ✅ Обновлен для nginx/default.conf
└── 📁 data/             # Создается автоматически
    ├── daemons.json
    ├── users.json
    └── tickets.json

Переменные окружения

Убедитесь, что в .env файле заданы:

# ZITADEL SSO
ZITADEL_ISSUER=https://sso.nevetime.ru
ZITADEL_CLIENT_ID=your_client_id
ZITADEL_CLIENT_SECRET=your_client_secret

# URLs
BASE_URL=https://your-domain.com
FRONTEND_URL=https://your-domain.com

# Security
SECRET_KEY=your-secret-key-here

Если проблемы остались

Nginx всё еще не запускается

  1. Проверьте монтирование:

    docker exec mc-panel-nginx ls -la /etc/nginx/conf.d/
    
  2. Проверьте синтаксис:

    docker exec mc-panel-nginx nginx -t
    
  3. Используйте стандартную конфигурацию:

    # Удалите volume с nginx конфигурацией из docker-compose.yml
    # Nginx будет использовать стандартную конфигурацию
    

Backend всё еще падает

  1. Создайте папки вручную:

    mkdir -p data
    touch data/users.json
    touch data/tickets.json
    touch data/daemons.json
    
  2. Проверьте права доступа:

    chmod 755 data
    chmod 644 data/*.json
    

Альтернативное решение

Если проблемы продолжаются, можно запустить без nginx:

  1. Отключите nginx в docker-compose.yml:

    # Закомментируйте секцию nginx
    
  2. Измените порты mc-panel:

    ports:
      - "80:8000"  # Прямой доступ к панели
    
  3. Перезапустите:

    docker-compose up -d mc-panel
    

После исправления панель должна работать на IP сервера через порт 80!