All checks were successful
continuous-integration/drone/push Build is passing
- 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
3.7 KiB
3.7 KiB
Исправление 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 (РЕКОМЕНДУЕТСЯ)
-
Скопируйте файлы:
docker-compose-linux.ymlbackend/daemons.py(обновленный)
-
Выполните команды:
# Остановить контейнеры
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 - самый надежный способ!