uploader-bot/README.md

207 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 - Проект с открытым исходным кодом