Реорганизация структуры заметок v2.0

- Создана новая организационная структура с эмодзи-папками
- Добавлена система Inbox для быстрого захвата идей
- Созданы шаблоны для всех типов заметок с YAML метаданными
- Перенесен весь контент из старой структуры в новую
- Добавлен главный дашборд с динамическими запросами
- Создано подробное руководство по использованию системы
- Техническая документация реорганизована по типам

Основные улучшения:
 Inbox-first подход для новых заметок
 Тематическая организация по 8 областям знаний
 Шаблоны с метаданными для структурированности
 Система связей между заметками
 Динамические дашборды с аналитикой
 Централизованная техническая документация без дублирования
This commit is contained in:
Andrey Epifancev
2025-08-09 22:11:50 +04:00
parent d2d511276f
commit e96fec3709
37 changed files with 1001 additions and 6 deletions

View File

@@ -0,0 +1,60 @@
# Git Service - Администрирование
## Ежедневное администрирование
Этот документ содержит информацию по управлению и обслуживанию Git Service.
## Управление пользователями
### Создание пользователей
*Процедуры добавления новых пользователей*
### Управление правами доступа
*Настройка прав и ролей*
### Сброс паролей
*Процедуры восстановления доступа*
## Управление репозиториями
### Создание репозиториев
*Настройка новых репозиториев*
### Backup репозиториев
*Процедуры резервного копирования*
### Миграция репозиториев
*Перенос репозиториев*
## Мониторинг
### Проверка состояния сервиса
*Health checks и мониторинг*
### Анализ логов
*Работа с логами Gitea и PostgreSQL*
### Метрики производительности
*Мониторинг ресурсов*
## Обслуживание
### Обновления
*Процедуры обновления Gitea*
### Backup и восстановление
*Полное резервное копирование*
### Troubleshooting
*Решение типовых проблем*
## Интеграции
### Настройка Webhooks
*Конфигурация уведомлений*
### Интеграция с CI/CD
*Подключение систем автоматизации*
---
*Эта страница находится в разработке*

View File

@@ -0,0 +1,409 @@
# Git Service - Конфигурации
**[[Обзор системы|← Назад к обзору]]**
## Docker Compose конфигурация
### Основной файл: `/DOCKER/git/docker-compose.yml`
```yaml
version: '3.8'
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWORD=sG7hZXBQDAtRab9A
- GITEA__server__SSH_DOMAIN=git.aepif.ru
- GITEA__server__SSH_PORT=2222
volumes:
- gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- db
networks:
- default
- proxy
labels:
- traefik.enable=true
# HTTP routing
- traefik.http.routers.gitea.rule=Host(`git.aepif.ru`)
- traefik.http.routers.gitea.tls.certresolver=letsencrypt
- traefik.http.services.gitea.loadbalancer.server.port=3000
# TCP routing for SSH
- traefik.tcp.routers.gitea-ssh.rule=HostSNI(`*`)
- traefik.tcp.routers.gitea-ssh.entrypoints=ssh
- traefik.tcp.services.gitea-ssh.loadbalancer.server.port=22
restart: unless-stopped
db:
image: postgres:14
container_name: gitea_db
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=sG7hZXBQDAtRab9A
- POSTGRES_DB=gitea
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- default
restart: unless-stopped
volumes:
gitea_data:
external: true
name: gitea_gitea_data
postgres_data:
external: true
name: gitea_postgres_data
networks:
proxy:
external: true
default:
driver: bridge
```
## Gitea конфигурация
### Environment Variables
```yaml
environment:
# User Configuration
- USER_UID=1000 # UID пользователя в контейнере
- USER_GID=1000 # GID пользователя в контейнере
# Database Configuration
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWORD=sG7hZXBQDAtRab9A
# Server Configuration
- GITEA__server__SSH_DOMAIN=git.aepif.ru
- GITEA__server__SSH_PORT=2222
```
### Расширенные настройки через переменные окружения
```yaml
environment:
# Server Settings
- GITEA__server__DOMAIN=git.aepif.ru
- GITEA__server__ROOT_URL=https://git.aepif.ru
- GITEA__server__DISABLE_SSH=false
- GITEA__server__START_SSH_SERVER=true
- GITEA__server__SSH_PORT=22 # Внутренний SSH порт
- GITEA__server__SSH_LISTEN_PORT=22 # Порт прослушивания в контейнере
# Security Settings
- GITEA__security__INSTALL_LOCK=true
- GITEA__security__SECRET_KEY=your_secret_key_here
# Service Settings
- GITEA__service__DISABLE_REGISTRATION=true
- GITEA__service__REQUIRE_SIGNIN_VIEW=false
- GITEA__service__ENABLE_NOTIFY_MAIL=false
# Repository Settings
- GITEA__repository__DEFAULT_BRANCH=main
- GITEA__repository__ENABLE_PUSH_CREATE_USER=true
- GITEA__repository__ENABLE_PUSH_CREATE_ORG=false
# Webhook Settings
- GITEA__webhook__ALLOWED_HOST_LIST=*
- GITEA__webhook__SKIP_TLS_VERIFY=false
```
### Структура конфигурации app.ini
Gitea также поддерживает конфигурацию через файл `app.ini`:
```ini
# /data/gitea/conf/app.ini внутри контейнера
[database]
DB_TYPE = postgres
HOST = db:5432
NAME = gitea
USER = gitea
PASSWD = sG7hZXBQDAtRab9A
SSL_MODE = disable
[server]
DOMAIN = git.aepif.ru
HTTP_PORT = 3000
ROOT_URL = https://git.aepif.ru/
DISABLE_SSH = false
SSH_DOMAIN = git.aepif.ru
SSH_PORT = 2222
START_SSH_SERVER = true
SSH_LISTEN_PORT = 22
[security]
INSTALL_LOCK = true
SECRET_KEY = your_secret_key_here
[service]
DISABLE_REGISTRATION = true
REQUIRE_SIGNIN_VIEW = false
ENABLE_NOTIFY_MAIL = false
DEFAULT_KEEP_EMAIL_PRIVATE = true
[mailer]
ENABLED = false
[repository]
DEFAULT_BRANCH = main
ENABLE_PUSH_CREATE_USER = true
ENABLE_PUSH_CREATE_ORG = false
[webhook]
ALLOWED_HOST_LIST = *
SKIP_TLS_VERIFY = false
```
## PostgreSQL конфигурация
### Database Container Settings
```yaml
db:
image: postgres:14
container_name: gitea_db
environment:
- POSTGRES_USER=gitea # Пользователь БД
- POSTGRES_PASSWORD=sG7hZXBQDAtRab9A # Пароль БД
- POSTGRES_DB=gitea # Имя базы данных
```
### Дополнительные настройки PostgreSQL
```yaml
environment:
# Performance Settings
- POSTGRES_SHARED_PRELOAD_LIBRARIES=pg_stat_statements
- POSTGRES_MAX_CONNECTIONS=200
- POSTGRES_SHARED_BUFFERS=256MB
- POSTGRES_EFFECTIVE_CACHE_SIZE=1GB
- POSTGRES_WORK_MEM=4MB
# Logging Settings
- POSTGRES_LOG_STATEMENT=all
- POSTGRES_LOG_MIN_DURATION_STATEMENT=1000
# Backup Settings
- POSTGRES_WAL_LEVEL=replica
- POSTGRES_ARCHIVE_MODE=on
```
### PostgreSQL Volume Configuration
```yaml
volumes:
postgres_data:
external: true
name: gitea_postgres_data # External volume для персистентности
```
## Traefik Integration Labels
### HTTP Routing
```yaml
labels:
- traefik.enable=true
- traefik.http.routers.gitea.rule=Host(`git.aepif.ru`)
- traefik.http.routers.gitea.tls.certresolver=letsencrypt
- traefik.http.services.gitea.loadbalancer.server.port=3000
```
### TCP Routing для SSH
```yaml
labels:
# SSH TCP routing
- traefik.tcp.routers.gitea-ssh.rule=HostSNI(`*`)
- traefik.tcp.routers.gitea-ssh.entrypoints=ssh
- traefik.tcp.services.gitea-ssh.loadbalancer.server.port=22
```
### Объяснение SSH routing
- **HostSNI(`*`)**: Принимает любые TCP соединения на SSH entrypoint
- **entrypoints=ssh**: Использует SSH entrypoint (порт 2222) в Traefik
- **port=22**: Перенаправляет на порт 22 внутри Gitea контейнера
## Networking Configuration
### Networks
```yaml
networks:
proxy:
external: true # Подключение к Traefik
default:
driver: bridge # Внутренняя сеть для Gitea + PostgreSQL
```
### Network Architecture
- **proxy network**: Для HTTP/HTTPS трафика через Traefik
- **default network**: Для внутренней связи Gitea ↔ PostgreSQL
- **SSH traffic**: Напрямую через TCP routing Traefik
## Volume Configuration
### Gitea Data Volume
```yaml
gitea_data:
external: true
name: gitea_gitea_data
```
**Содержимое Gitea volume:**
- **repositories/**: Git репозитории
- **conf/**: Конфигурационные файлы (app.ini)
- **log/**: Логи Gitea
- **data/**: Загруженные файлы, аватары
- **ssh/**: SSH ключи сервера
### PostgreSQL Data Volume
```yaml
postgres_data:
external: true
name: gitea_postgres_data
```
**Содержимое PostgreSQL volume:**
- **base/**: Файлы базы данных
- **global/**: Глобальные настройки кластера
- **pg_wal/**: Write-Ahead Log файлы
- **pg_tblspc/**: Tablespace ссылки
### Создание external volumes
```bash
# Создание volumes перед запуском
docker volume create gitea_gitea_data
docker volume create gitea_postgres_data
# Проверка созданных volumes
docker volume ls | grep gitea
```
## Time Synchronization
### Timezone Configuration
```yaml
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
```
Это обеспечивает синхронизацию времени контейнера с хост-системой, что важно для:
- Корректных timestamp в Git commits
- Правильного отображения времени в веб-интерфейсе
- Синхронизации с логами других сервисов
## Security Configuration
### User Permissions
```yaml
environment:
- USER_UID=1000
- USER_GID=1000
```
- Gitea запускается под пользователем с UID/GID 1000
- Соответствует обычному пользователю в Linux системах
- Обеспечивает правильные права доступа к файлам
### Database Security
- **Пароль БД**: Случайно сгенерированный пароль `sG7hZXBQDAtRab9A`
- **Изоляция сети**: PostgreSQL доступна только из внутренней сети
- **SSL отключен**: Для внутренней связи в Docker сети
### SSH Security
- **Отдельный порт**: SSH на нестандартном порту 2222
- **TCP routing**: Прямое подключение через Traefik
- **Key management**: SSH ключи управляются через веб-интерфейс
## Performance Tuning
### Gitea Performance Settings
```yaml
environment:
# Repository settings
- GITEA__repository__DEFAULT_REPO_UNITS=repo.code,repo.releases,repo.issues,repo.pulls,repo.wiki
- GITEA__repository__DEFAULT_PRIVATE=private
# Git settings
- GITEA__git__MAX_GIT_DIFF_LINES=10000
- GITEA__git__MAX_GIT_DIFF_LINE_CHARACTERS=5000
- GITEA__git__MAX_GIT_DIFF_FILES=100
# Session settings
- GITEA__session__PROVIDER=memory
- GITEA__session__PROVIDER_CONFIG=data/sessions
```
### PostgreSQL Performance
```yaml
environment:
# Connection settings
- POSTGRES_MAX_CONNECTIONS=200
- POSTGRES_SHARED_BUFFERS=256MB
- POSTGRES_EFFECTIVE_CACHE_SIZE=1GB
- POSTGRES_RANDOM_PAGE_COST=1.1
- POSTGRES_WORK_MEM=4MB
```
## Backup Configuration
### Automated Backups
```yaml
# Дополнительный контейнер для backup (опционально)
backup:
image: prodrigestivill/postgres-backup-local
environment:
- POSTGRES_HOST=db
- POSTGRES_DB=gitea
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=sG7hZXBQDAtRab9A
- BACKUP_KEEP_DAYS=7
- BACKUP_KEEP_WEEKS=4
- BACKUP_KEEP_MONTHS=6
volumes:
- ./backups:/backups
depends_on:
- db
```
### Backup Strategy
1. **Database Backup**: Автоматический dump PostgreSQL
2. **Repository Backup**: Резервное копирование Git репозиториев
3. **Configuration Backup**: Сохранение настроек и конфигурации
## Monitoring и Logging
### Log Configuration
```yaml
environment:
- GITEA__log__MODE=file
- GITEA__log__LEVEL=Info
- GITEA__log__ROOT_PATH=/data/gitea/log
```
### Health Checks
```yaml
# Дополнительные health checks
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/healthz"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
```
## Связанные файлы
- **[[Развертывание]]** - пошаговая установка и настройка
- **[[Администрирование]]** - управление пользователями и репозиториями
- **[[../Traefik Reverse Proxy/Конфигурации]]** - настройки интеграции с reverse proxy

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

View File

@@ -0,0 +1,46 @@
# Git Service - Развертывание
## Пошаговая установка
Этот документ содержит инструкции по развертыванию Git Service с нуля.
## Предварительные требования
### Системные требования
*Минимальные требования к серверу*
### Зависимости
*Необходимое ПО и сервисы*
## Установка
### Шаг 1: Подготовка среды
*Подготовка окружения для развертывания*
### Шаг 2: Конфигурация
*Настройка файлов конфигурации*
### Шаг 3: Развертывание контейнеров
*Запуск Docker Compose*
### Шаг 4: Первоначальная настройка
*Настройка Gitea через веб-интерфейс*
## Интеграция с инфраструктурой
### Подключение к Traefik
*Настройка reverse proxy*
### Настройка SSL
*Конфигурация сертификатов*
## Тестирование
### Проверка доступности
*Тесты работоспособности сервиса*
### Создание тестового репозитория
*Валидация функциональности*
---
*Эта страница находится в разработке*