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