Files
second-mind-aep/Мой сервер/Git Service/Обзор системы.md
2025-08-04 14:26:29 +04:00

204 lines
7.1 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.

## Описание
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 - Администрирование]]** - управление и обслуживание