fix(docker): simplify deployment by removing nginx and exposing backend on port 80
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
This commit is contained in:
2026-01-17 10:56:53 +06:00
parent c0125f3962
commit 2d77f99e93
3 changed files with 128 additions and 24 deletions

121
LINUX_DOCKER_FIX.md Normal file
View File

@@ -0,0 +1,121 @@
# Исправление Docker на Linux
## Проблема
Nginx не может запуститься из-за отсутствия секции "events" в конфигурации.
Backend работает отлично!
## ✅ ПРОСТОЕ РЕШЕНИЕ - Запуск без nginx
### Вариант 1: Быстрое исправление
```bash
# 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. **Выполните команды**:
```bash
# Остановить контейнеры
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
```
## Проверка
```bash
# Статус контейнера
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 отдельно:
```bash
# Создать правильную 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 - самый надежный способ!**