7.1 KiB
7.1 KiB
Описание
Git Service - отдельный сервис на базе Gitea, обеспечивающий централизованное хранение кода и заметок. Работает независимо от других сервисов и предоставляет Git-интерфейс для всех проектов в экосистеме aepif.ru.
Архитектура системы
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
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 использования
Веб-интерфейс
- Доступ через
git.aepif.ru - Аутентификация с помощью логина/пароля Gitea
- Управление репозиториями через Web UI
- Настройка webhooks для автоматизации
Git Operations
# 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
# Проверка веб-интерфейса
curl -I https://git.aepif.ru
# Проверка SSH доступа
ssh -T git@git.aepif.ru -p 2222
# Проверка контейнеров
docker ps | grep gitea
Администрирование
Создание пользователей
- Доступ к админ-панели Gitea
- User Management → Create User
- Настройка прав доступа
Настройка репозиториев
- Создание репозитория через Web UI
- Настройка webhooks для интеграций
- Управление коллаборацией
Обновления
# Обновление образа
docker-compose pull
docker-compose up -d
# Проверка версии
docker exec gitea gitea --version
Связанные сервисы
- Мой сервер/Second Mind Setup/Обзор системы - использует Git Service для хранения заметок
- Мой сервер/Инфраструктура/Обзор системы - обеспечивает маршрутизацию и SSL
- Potential CI/CD - будущие интеграции с системами автоматизации
Связанные документы
- Git Service - Конфигурации - детальные настройки
- Git Service - Развертывание - пошаговая установка
- Git Service - Администрирование - управление и обслуживание