170 lines
5.7 KiB
Markdown
170 lines
5.7 KiB
Markdown
# MY Network - Универсальная установка
|
||
|
||
🚀 **Универсальный установщик MY Network для любого сервера**
|
||
|
||
## ⚡ Быстрая установка
|
||
|
||
Один скрипт для полной установки на любом сервере:
|
||
|
||
```bash
|
||
# Скачать проект
|
||
git clone <repository_url>
|
||
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 с автообновлением |