vault backup: 2025-08-04 14:26:29
This commit is contained in:
204
Мой сервер/Git Service/Обзор системы.md
Normal file
204
Мой сервер/Git Service/Обзор системы.md
Normal file
@@ -0,0 +1,204 @@
|
||||
## Описание
|
||||
|
||||
Git Service - отдельный сервис на базе Gitea, обеспечивающий централизованное хранение кода и заметок. Работает независимо от других сервисов и предоставляет Git-интерфейс для всех проектов в экосистеме aepif.ru.
|
||||
|
||||
## Архитектура системы
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
A[Users] --> B[Traefik Proxy]
|
||||
B --> C[Gitea Web Interface]
|
||||
C --> D[Git Repositories]
|
||||
C --> E[PostgreSQL Database]
|
||||
F[SSH Clients] --> G[Gitea SSH:2222]
|
||||
G --> D
|
||||
|
||||
subgraph "Git Service Container"
|
||||
C
|
||||
D
|
||||
end
|
||||
|
||||
subgraph "Database Container"
|
||||
E
|
||||
end
|
||||
|
||||
H[Webhook Consumers] --> C
|
||||
C --> I[Webhook Notifications]
|
||||
```
|
||||
|
||||
## Основные компоненты
|
||||
|
||||
### Gitea Server
|
||||
- **Назначение**: Web-интерфейс для управления Git-репозиториями
|
||||
- **Домен**: `git.aepif.ru`
|
||||
- **Технология**: Gitea (Go-based Git service)
|
||||
- **Особенности**:
|
||||
- Web-интерфейс для просмотра кода
|
||||
- Issue tracking
|
||||
- Pull/Merge requests
|
||||
- Webhook notifications
|
||||
- User management
|
||||
|
||||
### PostgreSQL Database
|
||||
- **Назначение**: Хранение метаданных Gitea
|
||||
- **Технология**: PostgreSQL 14
|
||||
- **Данные**:
|
||||
- Информация о пользователях
|
||||
- Метаданные репозиториев
|
||||
- Issues и комментарии
|
||||
- Настройки системы
|
||||
|
||||
### SSH Access
|
||||
- **Порт**: 2222 (внешний доступ)
|
||||
- **Назначение**: Git operations через SSH
|
||||
- **Особенности**: Отдельный порт для избежания конфликтов
|
||||
|
||||
## Конфигурация
|
||||
|
||||
### Docker Compose
|
||||
```yaml
|
||||
services:
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
environment:
|
||||
- GITEA__database__DB_TYPE=postgres
|
||||
- GITEA__database__HOST=db:5432
|
||||
- GITEA__server__SSH_DOMAIN=git.aepif.ru
|
||||
- GITEA__server__SSH_PORT=2222
|
||||
networks:
|
||||
- proxy # Подключение к Traefik
|
||||
- default
|
||||
```
|
||||
|
||||
### Traefik Labels
|
||||
- **HTTP routing**: `git.aepif.ru` → port 3000
|
||||
- **TCP routing**: SSH на порту 2222
|
||||
- **SSL**: Автоматические сертификаты
|
||||
|
||||
## Репозитории
|
||||
|
||||
### Активные репозитории
|
||||
- **second-mind-aep**: Заметки для Second Mind
|
||||
- **configs**: Конфигурационные файлы сервера
|
||||
- **scripts**: Вспомогательные скрипты
|
||||
|
||||
### Структура URL
|
||||
- **HTTP Clone**: `https://git.aepif.ru/username/repo.git`
|
||||
- **SSH Clone**: `git@git.aepif.ru:username/repo.git`
|
||||
- **Internal URL**: `http://gitea:3000/username/repo.git`
|
||||
|
||||
## Интеграции
|
||||
|
||||
### Webhook Integration
|
||||
- **Second Mind**: автоматическая пересборка при push
|
||||
- **CI/CD**: потенциальная интеграция с системами автоматизации
|
||||
- **Notifications**: уведомления в внешние системы
|
||||
|
||||
### Authentication
|
||||
- **Bypass Authelia**: Собственная система аутентификации Gitea
|
||||
- **Local Users**: Управление пользователями внутри Gitea
|
||||
- **SSH Keys**: Управление SSH ключами для каждого пользователя
|
||||
|
||||
## Домены и доступ
|
||||
|
||||
| Протокол | Endpoint | Описание | Порт |
|
||||
|----------|----------|----------|------|
|
||||
| HTTPS | `git.aepif.ru` | Web-интерфейс Gitea | 443 |
|
||||
| SSH | `git.aepif.ru:2222` | Git SSH operations | 2222 |
|
||||
| HTTP | `gitea:3000` | Internal container access | 3000 |
|
||||
|
||||
## Workflow использования
|
||||
|
||||
### Веб-интерфейс
|
||||
1. **Доступ** через `git.aepif.ru`
|
||||
2. **Аутентификация** с помощью логина/пароля Gitea
|
||||
3. **Управление** репозиториями через Web UI
|
||||
4. **Настройка** webhooks для автоматизации
|
||||
|
||||
### Git Operations
|
||||
```bash
|
||||
# SSH клонирование
|
||||
git clone git@git.aepif.ru:2222/username/repo.git
|
||||
|
||||
# HTTPS клонирование
|
||||
git clone https://git.aepif.ru/username/repo.git
|
||||
|
||||
# Push изменений
|
||||
git push origin main
|
||||
```
|
||||
|
||||
## Структура файлов
|
||||
|
||||
```
|
||||
/DOCKER/git/
|
||||
├── docker-compose.yml # Конфигурация Gitea + PostgreSQL
|
||||
└── volumes/
|
||||
├── gitea_data/ # Данные Gitea (repos, config)
|
||||
└── postgres_data/ # База данных PostgreSQL
|
||||
```
|
||||
|
||||
## Безопасность
|
||||
|
||||
### Уровни защиты
|
||||
- **SSL/TLS**: Все HTTPS соединения зашифрованы
|
||||
- **SSH Keys**: Аутентификация по ключам для Git operations
|
||||
- **User Management**: Контроль доступа на уровне пользователей
|
||||
- **Repository Permissions**: Детальные права доступа к репозиториям
|
||||
|
||||
### Backup Strategy
|
||||
- **Database**: Регулярные дампы PostgreSQL
|
||||
- **Repositories**: Backup директории `gitea_data`
|
||||
- **External Mirrors**: Синхронизация с внешними Git-сервисами
|
||||
|
||||
## Мониторинг
|
||||
|
||||
### Доступные метрики
|
||||
- **Repository Usage**: Размер и активность репозиториев
|
||||
- **User Activity**: Статистика commits, pushes, pulls
|
||||
- **System Health**: Состояние базы данных и сервиса
|
||||
|
||||
### Health Checks
|
||||
```bash
|
||||
# Проверка веб-интерфейса
|
||||
curl -I https://git.aepif.ru
|
||||
|
||||
# Проверка SSH доступа
|
||||
ssh -T git@git.aepif.ru -p 2222
|
||||
|
||||
# Проверка контейнеров
|
||||
docker ps | grep gitea
|
||||
```
|
||||
|
||||
## Администрирование
|
||||
|
||||
### Создание пользователей
|
||||
1. Доступ к админ-панели Gitea
|
||||
2. User Management → Create User
|
||||
3. Настройка прав доступа
|
||||
|
||||
### Настройка репозиториев
|
||||
1. Создание репозитория через Web UI
|
||||
2. Настройка webhooks для интеграций
|
||||
3. Управление коллаборацией
|
||||
|
||||
### Обновления
|
||||
```bash
|
||||
# Обновление образа
|
||||
docker-compose pull
|
||||
docker-compose up -d
|
||||
|
||||
# Проверка версии
|
||||
docker exec gitea gitea --version
|
||||
```
|
||||
|
||||
## Связанные сервисы
|
||||
|
||||
- **[[Мой сервер/Second Mind Setup/Обзор системы|Second Mind]]** - использует Git Service для хранения заметок
|
||||
- **[[Мой сервер/Инфраструктура/Обзор системы|Traefik]]** - обеспечивает маршрутизацию и SSL
|
||||
- **Potential CI/CD** - будущие интеграции с системами автоматизации
|
||||
|
||||
## Связанные документы
|
||||
|
||||
- **[[Git Service - Конфигурации]]** - детальные настройки
|
||||
- **[[Git Service - Развертывание]]** - пошаговая установка
|
||||
- **[[Git Service - Администрирование]]** - управление и обслуживание
|
||||
Reference in New Issue
Block a user