# MC Panel - Docker Setup ## Быстрый запуск ### Windows ```bash # Запуск docker-start.bat # Остановка docker-stop.bat ``` ### Linux/macOS ```bash # Запуск docker-compose up --build -d # Остановка docker-compose down ``` ## Требования - Docker Desktop 4.0+ - Docker Compose 2.0+ - Минимум 2GB RAM - Минимум 5GB свободного места ## Конфигурация 1. Скопируйте `.env.docker` в `.env` 2. Отредактируйте переменные окружения в `.env` 3. Запустите контейнеры ## Структура ``` mc-panel/ ├── Dockerfile # Основной Dockerfile ├── docker-compose.yml # Конфигурация сервисов ├── .env.docker # Шаблон переменных окружения ├── docker-start.bat # Скрипт запуска (Windows) └── docker-stop.bat # Скрипт остановки (Windows) ``` ## Volumes - `mc_servers` - Серверы Minecraft - `mc_data` - Данные приложения - `mc_logs` - Логи приложения ## Порты - `8000` - Web интерфейс MC Panel - `80/443` - Nginx (опционально) ## Полезные команды ```bash # Просмотр логов docker-compose logs -f mc-panel # Перезапуск docker-compose restart # Обновление образа docker-compose build --no-cache docker-compose up -d # Вход в контейнер docker-compose exec mc-panel bash # Очистка (удаление volumes) docker-compose down -v # Полная очистка docker-compose down --rmi all -v docker system prune -a ``` ## Troubleshooting ### Контейнер не запускается ```bash # Проверьте логи docker-compose logs mc-panel # Проверьте конфигурацию docker-compose config ``` ### Проблемы с правами доступа ```bash # Linux/macOS - исправление прав sudo chown -R 1000:1000 backend/servers backend/data logs ``` ### Порт уже занят ```bash # Измените порт в docker-compose.yml ports: - "8080:8000" # вместо 8000:8000 ``` ## Мониторинг Health check доступен по адресу: `http://localhost:8000/health` ## Безопасность - Контейнер запускается от непривилегированного пользователя - Используется multi-stage build для минимизации размера - Секреты передаются через переменные окружения - Volumes для персистентных данных ## Production Для production окружения: 1. Используйте внешнюю базу данных 2. Настройте SSL/TLS через Nginx 3. Используйте Docker Swarm или Kubernetes 4. Настройте мониторинг и логирование 5. Регулярно обновляйте образы