vault backup: 2025-08-04 14:26:29

This commit is contained in:
Andrey Epifancev
2025-08-04 14:26:29 +04:00
parent 89db2cc763
commit 05f63cdf0e
20 changed files with 1450 additions and 1314 deletions

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