Files
umbrix/update-server/GITEA_SETUP.md
Umbrix Developer 95383d09fc
Some checks failed
CI / run (push) Waiting to run
Upload store MSIX to release / upload-store-msix-to-release (push) Has been cancelled
feat: update to v1.7.3 with smart asset detection and auto-install
2026-01-18 20:14:19 +03:00

261 lines
7.5 KiB
Markdown
Raw Permalink 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.
# 🚀 Установка Gitea для системы обновлений Umbrix
## 📋 Подготовка
### 1. Аренда VPS
**Минимальные требования:**
- RAM: 1GB (рекомендую 2GB для комфорта)
- CPU: 1 vCore
- SSD: 20GB
- OS: Ubuntu 22.04 / Debian 12
**Рекомендуемые провайдеры:**
- Hetzner Cloud (от €3.79/мес, 2GB RAM)
- DigitalOcean Droplet ($6/мес)
- Contabo VPS (от €4.99/мес, 4GB RAM)
### 2. Домены
Настройте DNS записи для:
```
git.umbrix.net → IP вашего сервера
git-mirror1.umbrix.net → IP сервера (или другой сервер)
git-mirror2.umbrix.net → IP сервера (или другой сервер)
```
### 3. SSL сертификаты (Let's Encrypt)
```bash
# Установите certbot
sudo apt update && sudo apt install -y certbot
# Получите сертификаты для всех доменов
sudo certbot certonly --standalone -d git.umbrix.net
sudo certbot certonly --standalone -d git-mirror1.umbrix.net
sudo certbot certonly --standalone -d git-mirror2.umbrix.net
# Скопируйте в папку nginx/ssl/
sudo cp /etc/letsencrypt/live/git.umbrix.net/fullchain.pem nginx/ssl/
sudo cp /etc/letsencrypt/live/git.umbrix.net/privkey.pem nginx/ssl/
# Повторите для mirror1 и mirror2
```
## 🐳 Установка Gitea
### 1. Установите Docker
```bash
# Удалите старые версии
sudo apt remove docker docker-engine docker.io containerd runc
# Установите Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Добавьте пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker
# Установите Docker Compose
sudo apt install -y docker-compose
```
### 2. Загрузите конфигурацию
```bash
# Создайте папку
mkdir -p ~/gitea-server
cd ~/gitea-server
# Скопируйте файлы:
# - gitea-docker-compose.yml → docker-compose.yml
# - nginx.conf → nginx/nginx.conf
# Создайте папки для SSL
mkdir -p nginx/ssl gitea/data gitea/postgres
```
### 3. Настройте пароль БД
Отредактируйте `docker-compose.yml`:
```yaml
POSTGRES_PASSWORD=ваш_надёжный_пароль_здесь
```
### 4. Запустите Gitea
```bash
docker-compose up -d
```
### 5. Первоначальная настройка
Откройте браузер: `https://git.umbrix.net`
**Настройки установки:**
- Database Type: `PostgreSQL`
- Host: `db:5432`
- Username: `gitea`
- Password: (ваш пароль из docker-compose.yml)
- Database Name: `gitea`
- SSH Server Domain: `git.umbrix.net`
- Gitea Base URL: `https://git.umbrix.net`
- **Отключите регистрацию** (только вы сможете создавать аккаунты)
## 📦 Создание репозитория и релиза
### 1. Создайте репозиторий
- Войдите в Gitea
- Нажмите "+" → "New Repository"
- Название: `umbrix`
- Visibility: `Public` (для обновлений)
### 2. Загрузите код (с локальной машины)
```bash
cd ~/dorod/hiddify-umbrix-v1.7.0
# Инициализируйте Git (если не инициализирован)
git init
git add .
git commit -m "Initial commit"
# Добавьте remote (замените на свой домен)
git remote add gitea https://git.umbrix.net/your-username/umbrix.git
# Запушьте код
git push -u gitea main
```
### 3. Создайте релиз
**Через UI:**
1. Перейдите: Releases → New Release
2. Tag: `v1.7.3`
3. Title: `Umbrix v1.7.3`
4. Описание: (release notes)
5. Прикрепите файлы:
- `umbrix-1.7.3-linux-x86_64.deb`
- `umbrix-1.7.3-linux-x86_64.rpm`
- `Umbrix-1.7.3-linux-x86_64.AppImage`
**Через API:**
```bash
# Получите Access Token: Настройки → Applications → Generate Token
curl -X POST "https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases" \
-H "Authorization: token YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tag_name": "v1.7.3",
"name": "Umbrix v1.7.3",
"body": "## Что нового\n- Улучшена стабильность",
"draft": false,
"prerelease": false
}'
# Загрузите файлы релиза
curl -X POST "https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases/ID/assets" \
-H "Authorization: token YOUR_ACCESS_TOKEN" \
-F "attachment=@dist/umbrix-1.7.3.deb"
```
## 🔧 Настройка Umbrix для Gitea
Отредактируйте `lib/core/model/constants.dart`:
```dart
abstract class Constants {
static const appName = "Umbrix";
static const githubUrl = "https://git.umbrix.net/your-username/umbrix";
static const githubReleasesApiUrl = "https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases";
static const githubLatestReleaseUrl = "https://git.umbrix.net/your-username/umbrix/releases/latest";
// ... остальное без изменений
static const useCustomUpdateServer = false; // Используем Gitea API
}
```
**Пересоберите:**
```bash
flutter build linux --release
```
## 🌐 Стратегия зеркал (антиблокировка)
### Вариант 1: DNS Load Balancing
Несколько IP для одного домена:
```
git.umbrix.net → 1.2.3.4, 5.6.7.8, 9.10.11.12
```
### Вариант 2: Поддомены-зеркала
```dart
static const githubReleasesApiUrl = List<String>[
"https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases",
"https://git-mirror1.umbrix.net/api/v1/repos/your-username/umbrix/releases",
"https://git-mirror2.umbrix.net/api/v1/repos/your-username/umbrix/releases",
];
// В app_update_repository.dart пробуем по очереди:
for (final url in Constants.githubReleasesApiUrl) {
try {
final response = await httpClient.get(url);
if (response.statusCode == 200) return response;
} catch (e) {
continue; // Пробуем следующее зеркало
}
}
```
### Вариант 3: Cloudflare + Workers
Прокси через Cloudflare Workers (обходит блокировки):
```javascript
// worker.js
export default {
async fetch(request) {
const url = new URL(request.url);
const targetUrl = "https://git.umbrix.net" + url.pathname;
return fetch(targetUrl);
}
}
```
Домен: `updates.umbrix.workers.dev`
## 📊 Мониторинг
```bash
# Логи Gitea
docker-compose logs -f gitea
# Статус
docker-compose ps
# Использование ресурсов
docker stats
```
## 🔄 Обновление Gitea
```bash
docker-compose pull
docker-compose up -d
```
## 💾 Бэкапы
```bash
# Бэкап данных Gitea
docker exec -u git gitea gitea dump -c /data/gitea/conf/app.ini
# Бэкап БД
docker exec gitea-db pg_dump -U gitea gitea > backup.sql
```
## 🎉 Готово!
Теперь у вас:
- ✅ Свой GitHub-клон на домене `git.umbrix.net`
- ✅ API для проверки обновлений (совместим с GitHub API)
- ✅ Зеркала для обхода блокировок
- ✅ UI для управления релизами
**URL releases API:**
```
https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases
```
Формат ответа идентичен GitHub API!