# MY Network - Универсальная установка 🚀 **Универсальный установщик MY Network для любого сервера** ## ⚡ Быстрая установка Один скрипт для полной установки на любом сервере: ```bash # Скачать проект git clone cd uploader-bot # или my-uploader-bot, или название вашего проекта # Запустить установку chmod +x universal_installer.sh sudo ./universal_installer.sh ``` ## 🌐 Настройка домена и HTTPS После установки настройте домен и SSL сертификат: ```bash # 1. Исправить nginx (если есть ошибки) chmod +x fix_nginx_now.sh sudo ./fix_nginx_now.sh # 2. Настроить домен и SSL chmod +x scripts/setup_domain_ssl.sh sudo ./scripts/setup_domain_ssl.sh ``` **Требования для SSL:** - Домен должен быть направлен на IP сервера (A-запись в DNS) - Порты 80 и 443 должны быть открыты - Сервер должен быть доступен из интернета ## 📁 Структура проекта ``` my-uploader-bot/ ├── universal_installer.sh # 🚀 Основной установщик ├── fix_nginx_now.sh # 🔧 Быстрое исправление nginx ├── app/ # 💻 Код приложения ├── scripts/ # 🛠️ Утилиты и скрипты │ ├── setup_domain_ssl.sh # 🌐 Настройка домена и SSL │ ├── diagnose.sh # 🔍 Диагностика проблем │ └── ... ├── deployment/ # 📦 Файлы развертывания ├── docs/ # 📚 Документация └── ... ``` ### 📦 deployment/ - `docker-compose.production.yml` - Основной compose файл - `Dockerfile` - Образ приложения - `requirements.txt` - Python зависимости - `env.example` - Пример переменных окружения ### 🛠️ scripts/ - `setup_domain_ssl.sh` - Настройка домена и SSL - `diagnose.sh` - Диагностика проблем - `quick_check.sh` - Быстрая проверка статуса - `setup_*.sh` - Скрипты настройки компонентов ### 📚 docs/ - Документация проекта - `archive/` - Устаревшие файлы ## 🔧 Что делает universal_installer.sh 1. **🔍 Автопоиск проекта** - находит папку проекта в любой директории 2. **📦 Установка зависимостей** - Docker, Docker Compose, Nginx, UFW 3. **🔒 Настройка безопасности** - файрвол, fail2ban 4. **🗑️ Очистка** - удаляет старые контейнеры 5. **⚙️ Конфигурация** - создает .env, настраивает nginx 6. **🚀 Запуск** - запускает все сервисы 7. **🔧 SystemD service** - автозапуск при перезагрузке 8. **✅ Тестирование** - проверяет работу API ## 🌐 После установки ### HTTP доступ: - `http://YOUR_SERVER_IP/api/health` - API health check - `http://YOUR_SERVER_IP/health` - Альтернативный health check ### HTTPS доступ (после настройки домена): - `https://your-domain.com/api/health` - API health check - `https://your-domain.com/health` - Альтернативный health check ## 🛠️ Управление ```bash # Статус sudo systemctl status mynetwork # Перезапуск sudo systemctl restart mynetwork # Логи приложения docker logs $(docker ps --format "{{.Names}}" | grep app | head -1) # Логи nginx sudo journalctl -u nginx -f ``` ## 🔍 Диагностика Если что-то не работает: ```bash # Быстрая диагностика ./scripts/diagnose.sh # Полная диагностика ./scripts/full_diagnosis.sh # Исправление nginx sudo ./fix_nginx_now.sh ``` ## 🔒 SSL и безопасность После настройки SSL: - Автоматическое перенаправление HTTP → HTTPS - Автообновление сертификатов Let's Encrypt - Безопасные заголовки HTTP - Современные SSL протоколы ```bash # Проверка сертификата sudo certbot certificates # Тест обновления sudo certbot renew --dry-run ``` ## 📋 Поддерживаемые системы - ✅ Ubuntu 20.04+ - ✅ Debian 11+ - ✅ CentOS 8+ (адаптация) ## 🚨 Решение проблем ### Nginx ошибки: ```bash sudo ./fix_nginx_now.sh ``` ### Контейнеры перезапускаются: ```bash docker logs $(docker ps --format "{{.Names}}" | grep app | head -1) ./scripts/diagnose.sh ``` ### SSL не работает: - Проверьте DNS записи - Убедитесь что порты 80/443 открыты - Проверьте файрвол: `sudo ufw status` ## 🆘 Поддержка Скрипт автоматически: - Находит проект в любой директории - Адаптируется к разным именам контейнеров - Работает с разными compose файлами - Создает резервные копии конфигураций - Показывает детальную диагностику при ошибках - Настраивает SSL с автообновлением