# MY Network v2.0 - Deployment Guide ## 🎯 Обзор MY Network v2.0 - это распределенная P2P сеть для репликации контента с Matrix-мониторингом и полной автоматизацией развертывания. ### Компоненты системы: - **MY Network Core** - основной P2P протокол (порт 15100) - **Web2 Client** - веб-интерфейс (порт 3000) - **Converter Module** - модуль конвертации (порт 8080) - **Telegram Bots** - клиентский и uploader боты (опционально) ## 🚀 Типы развертывания ### 1. Main Bootstrap Node (my-public-node-3.projscale.dev) **Назначение:** Главная нода сети, к которой подключаются все остальные ноды. **Скрипт:** [`deploy_main_bootstrap_node.sh`](deploy_main_bootstrap_node.sh) **Выполнение:** ```bash # На сервере my-public-node-3.projscale.dev как root: chmod +x deploy_main_bootstrap_node.sh ./deploy_main_bootstrap_node.sh ``` **Что делает:** - ✅ Устанавливает Docker + Docker Compose - ✅ Настраивает UFW firewall (22, 80, 443, 15100) - ✅ Настраивает Nginx reverse proxy - ✅ Получает SSL сертификат Let's Encrypt - ✅ Развертывает все компоненты (MY Network + Web Client + Converter) - ✅ Создает systemd service - ✅ Настраивает автообновление SSL **Результат:** - 🌐 **Web Interface:** https://my-public-node-3.projscale.dev/ - 🎛️ **Matrix Dashboard:** https://my-public-node-3.projscale.dev/monitor/ - ❤️ **Health Check:** https://my-public-node-3.projscale.dev/health - 🔗 **Bootstrap API:** https://my-public-node-3.projscale.dev/api/bootstrap - 🔌 **WebSocket:** wss://my-public-node-3.projscale.dev/ws/monitor ### 2. Regular Node (подключение к сети) **Назначение:** Обычная нода, которая подключается к существующей сети. **Скрипт:** [`deploy_regular_node.sh`](deploy_regular_node.sh) **Выполнение:** ```bash chmod +x deploy_regular_node.sh ./deploy_regular_node.sh ``` **Интерактивная настройка:** 1. **Node Name** - имя ноды (по умолчанию: my-node-timestamp) 2. **Public Domain** - публичный домен (опционально для приватных нод) 3. **Telegram Bot Token** - токен клиентского бота (опционально) 4. **Uploader Bot Token** - токен uploader бота (опционально) **Типы нод:** - **Public Regular Node** - с доменом, SSL, Nginx, веб-интерфейсом - **Private Regular Node** - только локальный доступ, без публичного домена **Что делает:** - 🔍 Подключается к main bootstrap node - 📡 Получает конфигурацию сети - 🐳 Развертывает контейнеры согласно типу ноды - 🌐 Настраивает публичный доступ (если указан домен) - 🤖 Включает Telegram ботов (если указаны токены) - 🔄 Инициирует синхронизацию с сетью ## 📋 Управление нодами ### Main Bootstrap Node ```bash # Просмотр логов docker-compose -f /opt/my-network-bootstrap/docker-compose.yml logs -f # Перезапуск systemctl restart my-network-main # Статус systemctl status my-network-main # Контейнеры docker-compose ps ``` ### Regular Node ```bash # Просмотр логов (замените NODE_NAME на имя вашей ноды) docker-compose -f /opt/my-network-NODE_NAME/docker-compose.yml logs -f # Перезапуск systemctl restart my-network-NODE_NAME # Статус systemctl status my-network-NODE_NAME ``` ## 🔧 Конфигурация ### Основные файлы: - **`.env`** - переменные окружения - **`bootstrap_main.json`** / **`bootstrap_regular.json`** - конфигурация ноды - **`docker-compose.yml`** - конфигурация контейнеров ### Порты: - **15100** - MY Network Protocol v2.0 - **3000** - Web2 Client (только для публичных нод) - **8080** - Converter Module - **80/443** - HTTP/HTTPS (Nginx) ### Firewall (UFW): ```bash # Основные порты ufw allow 22/tcp # SSH ufw allow 80/tcp # HTTP ufw allow 443/tcp # HTTPS ufw allow 15100/tcp # MY Network ``` ## 🌐 Сетевая архитектура ``` ┌─────────────────────────────────────┐ │ Main Bootstrap Node │ │ my-public-node-3.projscale.dev │ │ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ MY Network │ │ Web Client │ │ │ │ :15100 │ │ :3000 │ │ │ └─────────────┘ └─────────────┘ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Converter │ │ Nginx+SSL │ │ │ │ :8080 │ │ :80/:443 │ │ │ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────┘ │ │ Bootstrap API │ ┌─────────┼─────────┐ │ │ │ ┌───▼───┐ ┌───▼───┐ ┌───▼───┐ │Regular│ │Regular│ │Regular│ │Node 1 │ │Node 2 │ │Node N │ │ │ │ │ │ │ │Public │ │Private│ │Public │ └───────┘ └───────┘ └───────┘ ``` ## 🔒 Безопасность ### SSL/TLS: - Автоматическое получение сертификатов Let's Encrypt - Автообновление сертификатов (cron job) - HTTPS редирект для всех публичных нод ### Firewall: - UFW настроен для минимального доступа - Только необходимые порты открыты - Защита от DDoS на уровне Nginx ### Аутентификация: - JWT токены для API - Шифрование P2P соединений - Rate limiting для API endpoints ## 🤖 Telegram Боты ### Клиентский бот: - Взаимодействие с пользователями - Просмотр контента - Управление аккаунтом ### Uploader бот: - Загрузка контента в сеть - Конвертация файлов - Управление метаданными ### Настройка: ```bash # В .env файле ноды: TELEGRAM_BOT_TOKEN=your_client_bot_token UPLOADER_BOT_TOKEN=your_uploader_bot_token ``` ## 📊 Мониторинг ### Matrix Dashboard: - Real-time статистика сети - Информация о пирах - Статус синхронизации - WebSocket обновления ### Endpoints: - **Health:** `/health` - **Metrics:** `/api/metrics` - **Dashboard:** `/api/my/monitor/` - **WebSocket:** `/api/my/monitor/ws` ## 🔄 Синхронизация ### Процесс подключения новой ноды: 1. Подключение к bootstrap node 2. Получение списка активных пиров 3. Установка P2P соединений 4. Синхронизация данных 5. Регистрация в сети ### Интервалы: - **Sync Interval:** 30 секунд (regular) / 15 секунд (main) - **Discovery Interval:** 60 секунд (regular) / 30 секунд (main) - **Connection Timeout:** 30 секунд ## 🛠️ Troubleshooting ### Проблемы с подключением: ```bash # Проверка доступности bootstrap node curl -f https://my-public-node-3.projscale.dev/health # Проверка локального health check curl -f http://localhost:15100/health ``` ### Проблемы с SSL: ```bash # Проверка сертификата certbot certificates # Обновление сертификата certbot renew --dry-run ``` ### Проблемы с Docker: ```bash # Перезапуск контейнеров docker-compose down && docker-compose up -d --build # Просмотр логов docker-compose logs -f ``` ## 📁 Структура файлов ``` /opt/my-network-*/ ├── .env # Переменные окружения ├── bootstrap_*.json # Конфигурация ноды ├── docker-compose.yml # Docker конфигурация ├── data/ # База данных ├── logs/ # Логи приложения ├── app/ # Исходный код ├── web2-client/ # Веб-клиент └── converter-module/ # Модуль конвертации ``` ## ✅ Проверка развертывания ### Main Bootstrap Node: ```bash # Проверка всех endpoints curl -f https://my-public-node-3.projscale.dev/health curl -f https://my-public-node-3.projscale.dev/api/bootstrap curl -f https://my-public-node-3.projscale.dev/monitor/ ``` ### Regular Node: ```bash # Локальная проверка curl -f http://localhost:15100/health # Публичная проверка (если есть домен) curl -f https://your-domain.com/health ``` ## 🎉 Заключение MY Network v2.0 предоставляет полную автоматизацию развертывания распределенной P2P сети с возможностью: - ⚡ Быстрого развертывания main bootstrap node - 🔧 Гибкой настройки regular нод - 🤖 Опциональных Telegram ботов - 🌐 Публичного и приватного доступа - 🔒 Автоматической настройки SSL - 📊 Real-time мониторинга **Готово к production использованию!**