207 lines
8.3 KiB
Markdown
207 lines
8.3 KiB
Markdown
# MY Network v3.0 - Единый установочный скрипт
|
||
|
||
**Автоматическая установка и запуск децентрализованной сети контента одной командой**
|
||
|
||
## 🚀 Быстрая установка
|
||
|
||
### 🔥 Автоматическая установка одной командой (значения по умолчанию):
|
||
|
||
```bash
|
||
curl -fsSL https://git.projscale.dev/my-dev/uploader-bot/raw/branch/main/start.sh | sudo bash
|
||
```
|
||
|
||
**Настройки по умолчанию:**
|
||
- ✅ Bootstrap нода (создание новой сети)
|
||
- ✅ Веб-клиент включен
|
||
- ❌ SSL отключен (требует ручной настройки)
|
||
- ❌ Telegram боты отключены
|
||
|
||
### 🛠️ Интерактивная установка (с настройкой параметров):
|
||
|
||
```bash
|
||
wget https://git.projscale.dev/my-dev/uploader-bot/raw/branch/main/start.sh
|
||
chmod +x start.sh
|
||
sudo ./start.sh
|
||
```
|
||
|
||
**Интерактивный режим позволяет настроить:**
|
||
- Тип сети (Bootstrap или подключение к существующей)
|
||
- Тип ноды (публичная/приватная)
|
||
- SSL сертификат с доменом
|
||
- Telegram API ключи
|
||
- Путь к docker.sock
|
||
|
||
## 📋 Что устанавливается
|
||
|
||
Скрипт `start.sh` автоматически:
|
||
|
||
1. **Клонирует все репозитории:**
|
||
- `uploader-bot` - основное приложение
|
||
- `web2-client` - веб-интерфейс управления нодой
|
||
- `converter-module` - модуль конвертации медиа
|
||
- `contracts` - блокчейн контракты
|
||
|
||
2. **Устанавливает зависимости:**
|
||
- Docker и Docker Compose
|
||
- Python 3.11+ и системные библиотеки
|
||
- Nginx (при включении веб-клиента)
|
||
- Certbot (при включении SSL)
|
||
|
||
3. **Настраивает инфраструктуру:**
|
||
- PostgreSQL база данных с миграциями
|
||
- Redis для кеширования
|
||
- Nginx с поддержкой chunked uploads до 10GB
|
||
- SSL сертификаты через Let's Encrypt (опционально)
|
||
|
||
4. **Создает файлы проекта:**
|
||
- `docker-compose.yml` с полной конфигурацией
|
||
- `Dockerfile` для сборки приложения
|
||
- `requirements.txt` со всеми зависимостями
|
||
- `init_db.sql` с настройкой базы данных
|
||
- `alembic.ini` для миграций
|
||
|
||
## 🔧 Интерактивная настройка
|
||
|
||
При запуске скрипт предложит настроить:
|
||
|
||
### Сетевые настройки:
|
||
- **Режим сети:** Создать новую сеть (Bootstrap) или подключиться к существующей
|
||
- **Тип ноды:** Публичная (с входящими соединениями) или приватная
|
||
- **Bootstrap конфигурация:** Использовать дефолтную или кастомную
|
||
|
||
### Веб-интерфейс:
|
||
- **Веб-клиент:** Развертывание интерфейса управления нодой
|
||
- **SSL сертификат:** Автоматическое получение и настройка HTTPS
|
||
- **Домен и email:** Для SSL сертификата
|
||
|
||
### Дополнительные опции:
|
||
- **Docker socket:** Путь к docker.sock для конвертации
|
||
- **Telegram боты:** API ключи для основного и клиентского ботов
|
||
|
||
## 🌐 После установки
|
||
|
||
### Доступ к ноде:
|
||
- **API:** `http://localhost:15100` или `https://your-domain.com`
|
||
- **Веб-интерфейс:** `http://localhost` или `https://your-domain.com`
|
||
- **Health check:** `/health`
|
||
- **Статус ноды:** `/api/v3/node/status`
|
||
|
||
### Управление сервисом:
|
||
```bash
|
||
# Запуск/остановка
|
||
systemctl start my-network
|
||
systemctl stop my-network
|
||
systemctl restart my-network
|
||
|
||
# Статус
|
||
systemctl status my-network
|
||
|
||
# Логи
|
||
docker-compose -f /opt/my-network/my-network/docker-compose.yml logs -f
|
||
```
|
||
|
||
### Мониторинг:
|
||
```bash
|
||
# Статус ноды
|
||
curl http://localhost:15100/api/v3/node/status | jq
|
||
|
||
# Статистика сети
|
||
curl http://localhost:15100/api/v3/network/stats | jq
|
||
|
||
# Список пиров
|
||
curl http://localhost:15100/api/v3/node/peers | jq
|
||
```
|
||
|
||
## 🏗️ Архитектура v3.0
|
||
|
||
### Ключевые особенности:
|
||
- ✅ **Полная децентрализация** - без консенсуса и центральных узлов
|
||
- ✅ **Мгновенная трансляция** - контент доступен без расшифровки
|
||
- ✅ **Автоматическая конвертация** - через Docker контейнеры
|
||
- ✅ **Блокчейн интеграция** - совместимость с uploader-bot
|
||
- ✅ **Chunked uploads** - поддержка файлов до 10GB
|
||
- ✅ **SSL автоматизация** - Let's Encrypt интеграция
|
||
|
||
### Компоненты системы:
|
||
- **API Server** - FastAPI приложение на порту 15100
|
||
- **База данных** - PostgreSQL с автомиграциями
|
||
- **Кеширование** - Redis для быстрого доступа
|
||
- **Веб-интерфейс** - Nginx + статические файлы
|
||
- **Конвертер** - Docker контейнер для медиа-обработки
|
||
|
||
## 🔐 Безопасность
|
||
|
||
- **Шифрование** - AES-256 для контента в сети
|
||
- **JWT токены** - для API аутентификации
|
||
- **SSL/TLS** - автоматические сертификаты
|
||
- **Firewall** - автоматическая настройка портов
|
||
- **Fail2ban** - защита от брутфорса
|
||
|
||
## 📁 Структура проекта
|
||
|
||
После установки создается:
|
||
```
|
||
/opt/my-network/
|
||
├── my-network/ # Основной проект
|
||
│ ├── uploader-bot/ # Основное приложение
|
||
│ ├── web2-client/ # Веб-интерфейс
|
||
│ ├── converter-module/ # Модуль конвертации
|
||
│ ├── contracts/ # Блокчейн контракты
|
||
│ ├── docker-compose.yml
|
||
│ ├── Dockerfile
|
||
│ ├── requirements.txt
|
||
│ └── init_db.sql
|
||
├── storage/ # Хранилище контента
|
||
├── config/ # Конфигурация (.env, bootstrap.json)
|
||
└── logs/ # Логи системы
|
||
```
|
||
|
||
## 🆘 Поддержка
|
||
|
||
После установки создается отчет: `/opt/my-network/installation-report.txt`
|
||
|
||
### Проблемы и решения:
|
||
|
||
**Ошибка сборки Converter (TLS handshake timeout):**
|
||
```bash
|
||
# Автоматические решения скрипта:
|
||
# - 3 попытки сборки с увеличенными таймаутами
|
||
# - Очистка Docker cache между попытками
|
||
# - Перезапуск Docker daemon при повторных ошибках
|
||
# - Установка продолжится без converter если сборка не удалась
|
||
|
||
# Ручная сборка converter после установки:
|
||
cd /opt/my-network/my-network/converter-module/converter
|
||
docker build --network=host --build-arg HTTP_TIMEOUT=300 -t my-network-converter:latest .
|
||
|
||
# Проверка и сброс Docker настроек:
|
||
sudo systemctl restart docker
|
||
docker info | grep -i registry
|
||
docker system prune -f
|
||
```
|
||
|
||
**Ошибка клонирования репозиториев:**
|
||
```bash
|
||
# Проверьте доступность git.projscale.dev
|
||
ping git.projscale.dev
|
||
```
|
||
|
||
**Контейнеры не запускаются:**
|
||
```bash
|
||
# Проверьте логи
|
||
cd /opt/my-network/my-network
|
||
docker-compose logs
|
||
```
|
||
|
||
**SSL не работает:**
|
||
```bash
|
||
# Проверьте DNS записи
|
||
nslookup your-domain.com
|
||
# Проверьте nginx
|
||
nginx -t
|
||
systemctl status nginx
|
||
```
|
||
|
||
## 📝 Лицензия
|
||
|
||
MY Network v3.0 - Проект с открытым исходным кодом |