Files
NeveTimePanel/LINUX_DOCKER_FIX.md
arkonsadter 2d77f99e93
All checks were successful
continuous-integration/drone/push Build is passing
fix(docker): simplify deployment by removing nginx and exposing backend on port 80
- Remove nginx service from docker-compose.yml to eliminate configuration issues
- Expose backend directly on port 80 for direct access without reverse proxy
- Update BASE_URL and FRONTEND_URL environment variables to use port 80
- Add data volume mount for daemon storage at /app/data
- Add docker-compose.txt to .gitignore to exclude temporary files
- Add LINUX_DOCKER_FIX.md documentation with setup instructions and troubleshooting
- Simplify deployment configuration for Linux environments where nginx events section was causing startup failures
2026-01-17 10:56:53 +06:00

3.7 KiB
Raw Blame History

Исправление Docker на Linux

Проблема

Nginx не может запуститься из-за отсутствия секции "events" в конфигурации. Backend работает отлично!

ПРОСТОЕ РЕШЕНИЕ - Запуск без nginx

Вариант 1: Быстрое исправление

# 1. Остановить все контейнеры
docker compose down

# 2. Создать папку data с файлами
mkdir -p data
cat > data/users.json << 'EOF'
{"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":[]}}}
EOF
echo '{}' > data/tickets.json
echo '{}' > data/daemons.json

# 3. Изменить порты в docker-compose.yml
sed -i 's/"8000:8000"/"80:8000"/' docker-compose.yml

# 4. Запустить только mc-panel
docker compose up -d mc-panel

Вариант 2: Упрощенный docker-compose (РЕКОМЕНДУЕТСЯ)

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

    • docker-compose-linux.yml
    • backend/daemons.py (обновленный)
  2. Выполните команды:

# Остановить контейнеры
docker compose down

# Создать папку data
mkdir -p data
cat > data/users.json << 'EOF'
{"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":[]}}}
EOF
echo '{}' > data/tickets.json
echo '{}' > data/daemons.json

# Запустить с новой конфигурацией
docker compose -f docker-compose-linux.yml up --build -d

Проверка

# Статус контейнера
docker compose ps

# Логи
docker compose logs mc-panel

# Проверка API
curl http://localhost/api/auth/oidc/providers

# Проверка в браузере
# Откройте http://IP_СЕРВЕРА

Результат

Панель доступна на IP сервера через порт 80 Логин: admin, пароль: Admin SSO работает Никаких проблем с nginx

Если нужен nginx позже

После того как панель заработает, можно настроить nginx отдельно:

# Создать правильную nginx конфигурацию
cat > nginx/simple.conf << 'EOF'
events {
    worker_connections 1024;
}

http {
    upstream mc_panel {
        server mc-panel:8000;
    }

    server {
        listen 80;
        location / {
            proxy_pass http://mc_panel;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}
EOF

# Добавить nginx в docker-compose
# И изменить порты mc-panel обратно на "8000:8000"

Структура файлов

📁 Проект
├── docker-compose-linux.yml  # ✅ Упрощенная конфигурация
├── backend/daemons.py        # ✅ Исправленные пути
└── data/                     # ✅ Создается автоматически
    ├── users.json
    ├── tickets.json
    └── daemons.json

Используйте Вариант 2 - самый надежный способ!