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

174 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` с упрощенной конфигурацией
- Обновлен `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. **Остановите контейнеры**:
```bash
docker-compose down
```
3. **Пересоберите и запустите**:
```bash
docker-compose up --build -d
```
### Вариант 2: Быстрое исправление (без пересборки)
1. **Остановите только nginx**:
```bash
docker-compose stop nginx
```
2. **Создайте папку data в контейнере mc-panel**:
```bash
docker exec mc-panel mkdir -p /app/data
```
3. **Запустите nginx с новой конфигурацией**:
```bash
docker-compose up nginx -d
```
## Проверка
После исправления:
1. **Проверьте статус контейнеров**:
```bash
docker-compose ps
```
Должно быть:
```
NAME STATE
mc-panel Up
mc-panel-nginx Up
```
2. **Проверьте логи**:
```bash
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` файле заданы:
```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. **Проверьте монтирование**:
```bash
docker exec mc-panel-nginx ls -la /etc/nginx/conf.d/
```
2. **Проверьте синтаксис**:
```bash
docker exec mc-panel-nginx nginx -t
```
3. **Используйте стандартную конфигурацию**:
```bash
# Удалите volume с nginx конфигурацией из docker-compose.yml
# Nginx будет использовать стандартную конфигурацию
```
### Backend всё еще падает
1. **Создайте папки вручную**:
```bash
mkdir -p data
touch data/users.json
touch data/tickets.json
touch data/daemons.json
```
2. **Проверьте права доступа**:
```bash
chmod 755 data
chmod 644 data/*.json
```
## Альтернативное решение
Если проблемы продолжаются, можно запустить без nginx:
1. **Отключите nginx в docker-compose.yml**:
```yaml
# Закомментируйте секцию nginx
```
2. **Измените порты mc-panel**:
```yaml
ports:
- "80:8000" # Прямой доступ к панели
```
3. **Перезапустите**:
```bash
docker-compose up -d mc-panel
```
---
**После исправления панель должна работать на IP сервера через порт 80!**