# 🐳 Docker запуск - Python Moderation Backend ## Быстрый запуск ```bash cd moderation/backend-py ./docker-start.sh ``` Скрипт автоматически: 1. Соберет Docker образ 2. Остановит старый контейнер (если есть) 3. Запустит новый контейнер 4. Покажет логи ## Ручной запуск ### 1. Сборка образа ```bash cd moderation/backend-py docker build -t nakama-moderation-py . ``` ### 2. Запуск контейнера ```bash docker run -d \ --name nakama-moderation-py \ -p 3001:3001 \ --env-file ../../.env \ --restart unless-stopped \ nakama-moderation-py ``` ### 3. Проверка ```bash # Логи docker logs nakama-moderation-py # Логи в реальном времени docker logs -f nakama-moderation-py # Health check curl http://localhost:3001/health ``` ## Docker Compose ### Вариант 1: Отдельный запуск ```bash cd moderation/backend-py docker-compose -f docker-compose.moderation-py.yml up -d ``` ### Вариант 2: Интеграция в основной docker-compose Добавьте в корневой `docker-compose.yml`: ```yaml moderation-backend-py: build: context: ./moderation/backend-py dockerfile: Dockerfile container_name: nakama-moderation-backend-py restart: unless-stopped ports: - "127.0.0.1:3001:3001" env_file: - .env networks: - nakama-network healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:3001/health')"] interval: 30s timeout: 10s retries: 3 start_period: 40s ``` Затем: ```bash # Из корня проекта docker-compose up -d moderation-backend-py ``` ## Управление контейнером ```bash # Остановить docker stop nakama-moderation-py # Запустить docker start nakama-moderation-py # Перезапустить docker restart nakama-moderation-py # Удалить docker rm -f nakama-moderation-py # Логи docker logs nakama-moderation-py docker logs -f nakama-moderation-py # real-time # Зайти в контейнер docker exec -it nakama-moderation-py bash # Проверить статус docker ps | grep moderation-py ``` ## Обновление ```bash # Пересобрать образ docker build -t nakama-moderation-py . # Перезапустить контейнер docker stop nakama-moderation-py docker rm nakama-moderation-py ./docker-start.sh ``` ## Проверка работы ```bash # 1. Health check curl http://localhost:3001/health # 2. Config curl http://localhost:3001/api/moderation-auth/config # 3. Логи docker logs --tail 50 nakama-moderation-py # Должны увидеть: # ============================================================ # 🚀 Запуск сервера модерации (Python)... # ✅ MongoDB подключена (база: nakama) # ============================================================ ``` ## Production deployment ### С PM2 (если Docker не используется) ```bash cd moderation/backend-py source venv/bin/activate pm2 start "uvicorn main:app --host 0.0.0.0 --port 3001 --workers 2" \ --name moderation-backend-py \ --cwd $(pwd) \ --interpreter python3 pm2 save pm2 startup ``` ### С Docker в production ```bash # Из корня проекта docker-compose up -d moderation-backend-py # Или с отдельным compose файлом cd moderation/backend-py docker-compose -f docker-compose.moderation-py.yml up -d ``` ## Nginx интеграция Если используете Nginx как reverse proxy, добавьте: ```nginx upstream moderation_backend_py { server 127.0.0.1:3001; } server { listen 443 ssl http2; server_name moderation.nkm.guru; # SSL certificates ssl_certificate /etc/letsencrypt/live/moderation.nkm.guru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/moderation.nkm.guru/privkey.pem; # API location /api/ { proxy_pass http://moderation_backend_py; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # WebSocket location /socket.io/ { proxy_pass http://moderation_backend_py; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ``` Перезагрузите Nginx: ```bash sudo nginx -t sudo systemctl reload nginx ``` ## Troubleshooting ### Контейнер не запускается ```bash # Проверить логи docker logs nakama-moderation-py # Проверить .env ls -la ../../.env # Проверить MongoDB доступность docker run --rm mongo:7 mongosh "mongodb://103.80.87.247:27017/nakama" --eval "db.adminCommand('ping')" ``` ### Email не работает ```bash # Войти в контейнер и проверить docker exec -it nakama-moderation-py python test_email.py ``` ### Порт занят ```bash # Проверить, что запущено на порту 3001 sudo lsof -i :3001 # или sudo netstat -tulpn | grep 3001 # Остановить Node.js версию pm2 stop moderation-backend ``` ## Мониторинг ```bash # Статус контейнера docker ps | grep moderation-py # Использование ресурсов docker stats nakama-moderation-py # Логи с меткой времени docker logs -f --timestamps nakama-moderation-py ``` --- **Готово! Запускайте через `./docker-start.sh`** 🚀