Реорганизация структуры заметок 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,85 @@
# Документация сервера aepif.ru
Техническая документация инфраструктуры и сервисов домена aepif.ru. Здесь собрана вся информация о развернутых системах.
## Обзор архитектуры
Система построена на микросервисной архитектуре с использованием Docker и состоит из следующих основных компонентов:
### Инфраструктурные сервисы
- **[[Traefik Reverse Proxy/Обзор системы|Traefik Reverse Proxy]]** - централизованная маршрутизация и SSL
- **[[Authelia Authentication/Обзор системы|Authelia Authentication]]** - единая система аутентификации и авторизации
- **Redis** - хранение сессий и кэширование
### Основные приложения
- **[[Second Mind Setup/Обзор системы|Second Mind]]** - система публикации заметок Obsidian через Quartz
- **[[Git Service/Обзор системы|Git Service]]** - Git-сервер на базе Gitea для хранения кода и заметок
## Структура документации
### 🏗️ Общий обзор инфраструктуры
- **[[Обзор инфраструктуры]]** - архитектура высокого уровня и принципы системы
### 📋 Инфраструктурные сервисы
Базовые сервисы, обеспечивающие работу всей системы:
#### 🌐 Traefik Reverse Proxy
- **[[Traefik Reverse Proxy/Обзор системы]]** - архитектура и функции
- **[[Traefik Reverse Proxy/Конфигурации]]** - настройки маршрутизации и SSL
- **[[Traefik Reverse Proxy/Развертывание]]** - установка reverse proxy
- **[[Traefik Reverse Proxy/Администрирование]]** - управление трафиком
#### 🔐 Authelia Authentication
- **[[Authelia Authentication/Обзор системы]]** - система аутентификации
- **[[Authelia Authentication/Конфигурации]]** - настройки доступа и пользователей
- **[[Authelia Authentication/Развертывание]]** - установка системы авторизации
- **[[Authelia Authentication/Администрирование]]** - управление пользователями
### 📝 Second Mind Setup
Система автоматической публикации заметок:
- **[[Second Mind Setup/Обзор системы]]** - концепция и архитектура
- **[[Second Mind Setup/Конфигурации]]** - настройки компонентов
- **[[Second Mind Setup/Развертывание]]** - пошаговая установка
- **[[Second Mind Setup/Администрирование]]** - управление и поддержка
### 🗂️ Git Service
Централизованное хранение кода и версионирование:
- **[[Git Service/Обзор системы]]** - архитектура Git-сервера
- **[[Git Service/Конфигурации]]** - настройки Gitea и PostgreSQL
- **[[Git Service/Развертывание]]** - установка и первоначальная настройка
- **[[Git Service/Администрирование]]** - управление пользователями и репозиториями
## Домены и сервисы
| Домен | Сервис | Описание | Статус |
|-------|--------|----------|--------|
| `notes.aepif.ru` | Second Mind | Опубликованные заметки | 🟢 Активен |
| `git.aepif.ru` | Gitea | Git-сервер | 🟢 Активен |
| `auth.aepif.ru` | Authelia | Система входа | 🟢 Активен |
| `traefik.aepif.ru` | Traefik Dashboard | Мониторинг прокси | 🟢 Активен |
| `webhook.aepif.ru` | Webhook Service | API автоматизации | 🟢 Активен |
## Быстрый старт
1. **Развертывание Traefik**: [[Traefik Reverse Proxy/Развертывание]]
2. **Настройка аутентификации**: [[Authelia Authentication/Развертывание]]
3. **Установка Git Service**: [[Git Service/Развертывание]]
4. **Установка Second Mind**: [[Second Mind Setup/Развертывание]]
5. **Первая публикация**: [[Second Mind Setup/Администрирование]]
## Мониторинг и безопасность
- Все сервисы защищены SSL сертификатами от Let's Encrypt
- Централизованная аутентификация через Authelia
- Мониторинг доступен через Traefik Dashboard
- Логи сервисов доступны через `docker logs`
## Полезные ссылки
- [Опубликованная версия заметок](https://notes.aepif.ru) 🔒
- [Git-репозиторий](https://git.aepif.ru) 🔒
- [Административная панель](https://traefik.aepif.ru) 🔒
---
*Документация обновлена: {{ date | date('YYYY-MM-DD') }}*

View File

@@ -0,0 +1,259 @@
# Обзор инфраструктуры aepif.ru
## Введение
Данный документ представляет общий обзор инфраструктуры домена aepif.ru и служит связующим звеном между отдельными компонентами системы.
**[[index|Вернуться к документации сервера]]**
## Архитектура высокого уровня
```mermaid
graph TB
A[Internet] --> B[Traefik Reverse Proxy]
B --> C[Authelia Authentication]
B --> D[Second Mind - notes.aepif.ru]
B --> E[Git Service - git.aepif.ru]
B --> F[Webhook Service - webhook.aepif.ru]
C --> G[Redis Session Store]
C --> H[User Database]
E --> I[PostgreSQL Database]
E --> J[Git Repositories]
D --> K[Nginx Static Server]
D --> L[Quartz Builder]
F --> L
F --> J
subgraph "Infrastructure Layer"
B
C
G
end
subgraph "Application Layer"
D
E
F
end
subgraph "Data Layer"
H
I
J
K
end
```
## Принципы архитектуры
### Микросервисная архитектура
- **Разделение ответственности**: Каждый сервис выполняет специфическую функцию
- **Независимое развертывание**: Сервисы можно обновлять и масштабировать независимо
- **Контейнеризация**: Все сервисы работают в Docker контейнерах
- **Service Discovery**: Автоматическое обнаружение сервисов через Docker
### Централизованная инфраструктура
- **Single Point of Entry**: Traefik как единая точка входа
- **Unified Authentication**: Authelia для всех защищенных сервисов
- **Automated SSL**: Let's Encrypt для всех доменов
- **Shared Networks**: Общие Docker сети для взаимодействия
### DevOps практики
- **Infrastructure as Code**: Конфигурация через docker-compose файлы
- **Automated Deployment**: Git-based deployment для заметок
- **Monitoring**: Централизованный мониторинг через Traefik Dashboard
- **Security First**: Принцип минимальных привилегий и защита по умолчанию
## Компоненты системы
### Уровень инфраструктуры
#### Traefik Reverse Proxy
- **Роль**: Центральный маршрутизатор трафика
- **Документация**: [[Мой сервер/Traefik Reverse Proxy/Обзор системы]]
- **Функции**: SSL termination, load balancing, service discovery
- **Интеграции**: Docker API, Let's Encrypt, Authelia middleware
#### Authelia Authentication
- **Роль**: Централизованная аутентификация и авторизация
- **Документация**: [[Мой сервер/Authelia Authentication/Обзор системы]]
- **Функции**: SSO, 2FA, access control, session management
- **Интеграции**: Traefik Forward Auth, Redis, file-based users
### Уровень приложений
#### Second Mind
- **Роль**: Система публикации заметок Obsidian
- **Документация**: [[Мой сервер/Second Mind Setup/Обзор системы]]
- **Функции**: Статическая генерация сайта, webhook processing
- **Интеграции**: Git Service, Quartz, Nginx
#### Git Service
- **Роль**: Централизованное хранение кода и документации
- **Документация**: [[Мой сервер/Git Service/Обзор системы]]
- **Функции**: Git repositories, web interface, webhook notifications
- **Интеграции**: PostgreSQL, Traefik, SSH access
## Сетевая архитектура
### Docker Networks
#### Proxy Network
```yaml
networks:
proxy:
name: proxy
driver: bridge
external: true
```
- **Назначение**: Связывает все публичные сервисы с Traefik
- **Подключенные сервисы**: Traefik, Authelia, Second Mind, Git Service
- **Безопасность**: Изолированная сеть для веб-трафика
#### Internal Networks
- **auth_default**: Внутренняя сеть для Authelia и Redis
- **git_default**: Внутренняя сеть для Git Service и PostgreSQL
- **second-mind_default**: Внутренняя сеть для Second Mind компонентов
### Port Mapping
| Порт | Сервис | Протокол | Назначение |
|------|--------|----------|------------|
| 80 | Traefik | HTTP | Редирект на HTTPS |
| 443 | Traefik | HTTPS | Основной веб-трафик |
| 2222 | Traefik → Git | SSH | Git operations |
| 8080 | Traefik | HTTP | Dashboard (insecure) |
## Управление доменами
### Domain Structure
```
aepif.ru
├── notes.aepif.ru → Second Mind (защищено Authelia)
├── git.aepif.ru → Git Service (собственная авторизация)
├── auth.aepif.ru → Authelia (публичная страница входа)
├── webhook.aepif.ru → Webhook Service (API без авторизации)
└── traefik.aepif.ru → Traefik Dashboard (небезопасно)
```
### SSL Certificate Management
- **Провайдер**: Let's Encrypt ACME
- **Challenge Type**: TLS Challenge
- **Автоматическое обновление**: Traefik управляет жизненным циклом
- **Хранение**: Persistent volume в Traefik контейнере
## Data Flow
### User Authentication Flow
1. **User Request** → Traefik получает запрос к защищенному ресурсу
2. **Middleware Check** → Traefik проверяет Authelia middleware
3. **Auth Validation** → Authelia валидирует сессию в Redis
4. **Authentication** → При необходимости перенаправление на auth.aepif.ru
5. **Access Grant** → После успешной аутентификации доступ к ресурсу
### Content Publishing Flow
1. **Git Push** → Изменения отправляются в Git Service
2. **Webhook Trigger** → Git Service отправляет webhook
3. **Content Pull** → Webhook Service получает изменения
4. **Site Build** → Quartz генерирует статический сайт
5. **Content Deploy** → Nginx раздает обновленный контент
## Security Model
### Принципы безопасности
- **Zero Trust**: Проверка каждого запроса
- **Least Privilege**: Минимальные необходимые права
- **Defense in Depth**: Многоуровневая защита
- **Secure by Default**: Безопасные настройки по умолчанию
### Security Layers
1. **Network Level**: Firewall, isolated networks
2. **Transport Level**: TLS encryption, HSTS
3. **Application Level**: Authentication, authorization
4. **Data Level**: Encrypted storage, secure secrets
### Access Control
- **Public Access**: webhook.aepif.ru (API with token)
- **Bypass Authelia**: git.aepif.ru, auth.aepif.ru
- **Protected by Authelia**: notes.aepif.ru
- **Admin Only**: traefik.aepif.ru (должен быть защищен в production)
## Monitoring и Observability
### Available Metrics
- **Traefik Dashboard**: Request metrics, response times, error rates
- **Container Logs**: Application logs через `docker logs`
- **Health Checks**: Automatic service health monitoring
- **SSL Certificate Status**: Expiration monitoring
### Monitoring Endpoints
```bash
# Health checks
curl -I https://notes.aepif.ru/health
curl -I https://git.aepif.ru/
curl -I https://auth.aepif.ru/api/health
# Traefik metrics
curl https://traefik.aepif.ru/api/rawdata
```
## Disaster Recovery
### Backup Strategy
1. **Configuration Files**: All docker-compose.yml and config files
2. **SSL Certificates**: Traefik ACME data
3. **User Data**: Authelia user database and config
4. **Git Repositories**: Git Service data and PostgreSQL
5. **Application Data**: Second Mind built content
### Recovery Procedures
1. **Infrastructure**: Redeploy Traefik and Authelia
2. **Certificates**: Restore ACME data or let auto-renewal
3. **Services**: Redeploy application services
4. **Data**: Restore databases and repositories
5. **Testing**: Validate all services are functional
## Развертывание (High Level)
### Порядок развертывания
1. **[[Мой сервер/Traefik Reverse Proxy/Развертывание|Traefik Deployment]]** - Базовая инфраструктура
2. **[[Мой сервер/Authelia Authentication/Развертывание|Authelia Deployment]]** - Система аутентификации
3. **[[Мой сервер/Git Service/Развертывание|Git Service Deployment]]** - Git сервер
4. **[[Мой сервер/Second Mind Setup/Развертывание|Second Mind Deployment]]** - Система публикации
### Prerequisites
- Docker и Docker Compose
- Доступ к серверу с публичным IP
- Настроенные DNS записи для всех поддоменов
- Открытые порты 80, 443, 2222
## Масштабирование
### Horizontal Scaling
- **Load Balancing**: Traefik поддерживает несколько backend instances
- **Database Scaling**: PostgreSQL можно масштабировать с репликами
- **Static Content**: CDN для Second Mind статического контента
### Performance Optimization
- **Caching**: Nginx кеширование статического контента
- **Compression**: Gzip compression в Traefik/Nginx
- **Connection Pooling**: Оптимизированные подключения к БД
## Связанные документы
### Компоненты инфраструктуры
- **[[Traefik Reverse Proxy/Обзор системы]]** - Reverse proxy и SSL
- **[[Authelia Authentication/Обзор системы]]** - Аутентификация и авторизация
### Прикладные сервисы
- **[[Second Mind Setup/Обзор системы]]** - Система публикации заметок
- **[[Git Service/Обзор системы]]** - Git сервер и репозитории
### Развертывание и администрирование
- **[[Traefik Reverse Proxy/Администрирование]]** - Управление трафиком
- **[[Authelia Authentication/Администрирование]]** - Управление пользователями

View File

@@ -0,0 +1,553 @@
# Оптимизация VPS с Hugo
## 1. Концепция
### 1.1 Общая идея
Создание единого приложения на Go, которое объединяет webhook сервер и Hugo генератор статического сайта. Приложение обрабатывает Git webhook и автоматически пересобирает сайт при изменениях в репозитории, заменяя ресурсоемкий Quartz на эффективный Hugo.
### 1.2 Преимущества единого приложения
- **Простота развертывания**: Один контейнер вместо нескольких
- **Эффективность ресурсов**: Меньше накладных расходов
- **Простота мониторинга**: Единая точка наблюдения
- **Атомарность операций**: Все операции в одном процессе
- **Простота отладки**: Единый лог и контекст
### 1.3 Недостатки единого приложения
- **Менее гибкое масштабирование**: Сложность горизонтального масштабирования
- **Сложность при росте функциональности**: Монолитная архитектура
- **Единая точка отказа**: Все компоненты в одном процессе
- **Сложность обновлений**: Необходимость пересборки всего приложения
## 2. Архитектура
### 2.1 Компонентная диаграмма
```mermaid
graph TB
A[Git Webhook] --> B[HTTP Server]
B --> C[Webhook Handler]
C --> D[Git Manager]
D --> E[Hugo Builder]
E --> F[Shared Volume]
F --> G[Nginx]
subgraph "Единое приложение"
B
C
D
E
end
subgraph "Внешние сервисы"
A
F
G
end
```
### 2.2 Структура приложения
**Основные модули:**
- **HTTP Server**: Обработка входящих запросов
- **Webhook Handler**: Валидация и обработка webhook
- **Git Manager**: Клонирование и обновление репозитория
- **Hugo Builder**: Сборка статического сайта
- **File Manager**: Управление файловой системой
## 3. Флоу обработки
### 3.1 Основной флоу
```mermaid
graph TB
A[Получение webhook] --> B[Валидация подписи]
B --> C[Проверка ветки]
C --> D[Обновление репозитория]
D --> E[Проверка изменений]
E --> F[Сборка Hugo]
F --> G[Автоматическое обновление статики]
G --> H[Отправка уведомления]
subgraph "Обработка ошибок"
I[Retry логика]
J[Fallback механизмы]
K[Логирование ошибок]
end
E --> I
F --> J
G --> K
```
### 3.2 Детальный флоу
**Этап 1: Получение и валидация**
- Получение webhook от Git (GitHub, GitLab, Gitea)
- Валидация подписи webhook
- Проверка типа события (push, merge)
- Проверка целевой ветки
**Этап 2: Работа с репозиторием**
- Клонирование репозитория (если первый раз)
- Pull последних изменений
- Проверка наличия изменений в контенте
- Очистка временных файлов
**Этап 3: Сборка сайта**
- Проверка конфигурации Hugo
- Запуск Hugo сборки
- Обработка ошибок сборки
- Оптимизация статических файлов
**Этап 4: Развертывание**
- Автоматическое обновление файлов в общем volume
- Проверка целостности файлов
- Nginx автоматически раздает обновленный контент
**Этап 5: Завершение**
- Логирование результата
- Обновление метрик
## 4. Сохранение структуры каталогов
### 4.1 Принцип "не трогать структуру"
**Ключевое правило:** Структура каталогов в Git остается неизменной, Hugo адаптируется под неё.
**Преимущества:**
- Сохранение удобной навигации в Obsidian
- Отсутствие необходимости переименовывать файлы
- Сохранение существующих ссылок
- Простота миграции
### 4.2 Адаптация Hugo под существующую структуру
**Текущая структура (остается неизменной):**
```
Second Mind/
├── index.md
├── Идеи/
│ ├── Obsidian телеграм бот/
│ │ ├── MVP Telegram бота для Obsidian.md
│ │ └── Telegram бот для Obsidian.md
│ └── Оптимизация ресурсов VPS/
│ ├── Единое приложение Hugo + Webhook.md
│ └── Миграция контента на Hugo.md
├── Мой сервер/
│ ├── Authelia Authentication/
│ ├── Git Service/
│ ├── Second Mind Setup/
│ └── Traefik Reverse Proxy/
└── Документация сервера aepif.ru.md
```
**Hugo конфигурация для работы с существующей структурой:**
- Настройки для работы с существующей структурой
- Поддержка Obsidian-специфичных элементов
- Сохранение кириллических имен
### 4.3 Обработка имен файлов и каталогов
**Стратегия Hugo:**
- Использование оригинальных имен файлов и каталогов
- Автоматическое создание slug из имен файлов
- Сохранение кириллических имен
- Обработка пробелов и специальных символов
**URL структура:**
- `/идеи/obsidian-телеграм-бот/mvp-telegram-бота-для-obsidian/`
- `/мой-сервер/authelia-authentication/`
- Сохранение читаемости URL
## 5. Граф записей (Graph View)
### 5.1 Аналоги Obsidian/Quartz графа
**Доступные решения для Hugo:**
**Встроенные возможности Hugo:**
- Автоматическое создание графа связей между страницами
- Визуализация внутренних ссылок
- Отображение связанных страниц
- Интерактивная карта знаний
**Сторонние библиотеки:**
- D3.js для интерактивной визуализации
- Vis.js для сетевых графов
- Cytoscape.js для сложных графов
- Sigma.js для больших сетей
### 5.2 Функциональность графа
**Визуализация связей:**
- Отображение всех внутренних ссылок между страницами
- Размер узлов в зависимости от количества связей
- Цветовая кодировка по категориям/тегам
- Интерактивная навигация по графу
**Интерактивность:**
- Клик по узлу для перехода к странице
- Зум и панорамирование графа
- Фильтрация по тегам или категориям
- Поиск по названиям страниц
**Аналитика:**
- Центральные страницы (много связей)
- Изолированные страницы (мало связей)
- Кластеры связанных тем
- Пути между страницами
### 5.3 Интеграция с существующей структурой
**Автоматическое создание графа:**
- Анализ всех Markdown файлов
- Извлечение внутренних ссылок
- Создание JSON данных для графа
- Генерация интерактивной визуализации
**Сохранение Obsidian-стиля:**
- Похожий интерфейс на Obsidian Graph View
- Те же принципы навигации
- Совместимость с существующими ссылками
- Поддержка кириллических названий
## 6. Миграция контента
### 6.1 Основные изменения при миграции
**Frontmatter преобразования:**
- Сохранение существующих полей
- Добавление Hugo-специфичных полей (title, date, draft)
- Автоматическое извлечение заголовка из имени файла
- Преобразование дат в стандартный формат
**Внутренние ссылки:**
- `[[wiki links]]``{{< ref "path" >}}`
- Сохранение относительных путей
- Обработка Obsidian-специфичных ссылок
- Автоматическое обновление ссылок при изменении структуры
**Изображения и вложения:**
- Сохранение в той же структуре каталогов
- Обновление путей в контенте
- Оптимизация размера файлов без изменения структуры
### 6.2 Автоматизация миграции
**Скрипт миграции:**
- Анализ существующей структуры
- Автоматическое создание Hugo конфигурации
- Преобразование frontmatter
- Обновление внутренних ссылок
- Сохранение структуры каталогов
## 7. Docker развертывание
### 7.1 Архитектура контейнеров
```mermaid
graph TB
A[Git Repository] --> B[Hugo + Webhook Container]
B --> C[Shared Volume]
C --> D[Nginx Container]
D --> E[Internet]
subgraph "Docker Host"
B
C
D
end
```
### 7.2 Структура Docker
**Docker Compose:**
- Hugo + Webhook контейнер с прямым монтированием существующей структуры
- Nginx контейнер для раздачи статики
- Общий volume для статических файлов
- Автоматическое обновление контента без перезагрузки
### 7.3 Преимущества общего volume
**Для пользователя:**
- Знакомая навигация в Obsidian
- Отсутствие необходимости переучиваться
- Сохранение всех существующих ссылок
- Простота поиска файлов
**Для системы:**
- Минимальные изменения в Git репозитории
- Простота отката к предыдущей версии
- Сохранение истории изменений
- Совместимость с существующими инструментами
- Автоматическое обновление без перезагрузки сервисов
## 8. Интеграция с Obsidian
### 8.1 Рабочий флоу
**Разработка (без изменений):**
1. Редактирование в Obsidian
2. Коммит в Git репозиторий
3. Webhook автоматически запускает сборку
4. Hugo генерирует новый сайт
5. Nginx автоматически раздает обновленный контент
**Синхронизация:**
- Obsidian Vault → Git Repository (без изменений)
- Git Repository → Hugo Content (прямое использование)
- Hugo Content → Static Site (с сохранением структуры)
- Static Site → Nginx (через общий volume)
### 8.2 Автоматизация
**Git Hooks (без изменений):**
- Автоматический коммит при изменениях в Obsidian
- Push в удаленный репозиторий
- Webhook уведомление
**Webhook обработка:**
- Валидация изменений
- Клонирование/обновление репозитория
- Сборка Hugo с сохранением структуры
- Автоматическое обновление в общем volume
## 9. Конфигурация
### 9.1 Основные параметры
**Git настройки:**
- URL репозитория
- Ветка для отслеживания
- SSH ключи или токены
- Webhook секрет
**Hugo настройки:**
- Путь к исходникам
- Путь для сборки (общий volume)
- Конфигурационный файл
- Параметры оптимизации
**Системные настройки:**
- Пути для статических файлов
- Настройки логирования
- Общий volume для Hugo и Nginx
### 9.2 Переменные окружения
**Обязательные:**
- GIT_REPOSITORY_URL
- GIT_WEBHOOK_SECRET
- HUGO_SOURCE_PATH
- HUGO_OUTPUT_PATH
- SHARED_VOLUME_PATH
**Опциональные:**
- LOG_LEVEL
- METRICS_PORT
### 9.3 Оптимизации для VPS
**Производительность:**
- Минификация всех ресурсов
- Оптимизация изображений
- Gzip сжатие
- Кэширование статических файлов
**Ресурсы:**
- Ограничение использования памяти
- Оптимизация времени сборки
- Эффективное использование диска
## 10. Сравнение Hugo vs Quartz
### 10.1 Преимущества Hugo перед Quartz
**Производительность:**
- **Время сборки**: Hugo в 5-10 раз быстрее
- **Потребление памяти**: Снижение на 70-80%
- **CPU нагрузка**: Минимальная нагрузка
- **Время загрузки**: Улучшение на 40-60%
**Технические:**
- **Язык**: Go vs Node.js (более эффективный)
- **Зависимости**: Минимальные vs множество npm пакетов
- **Размер**: Один бинарник vs множество файлов
- **Сборка**: Компиляция vs интерпретация
**Операционные:**
- **Развертывание**: Простое Docker развертывание
- **Мониторинг**: Встроенные метрики
- **Безопасность**: Меньше уязвимостей
- **Стабильность**: Более предсказуемое поведение
### 10.2 Недостатки Hugo перед Quartz
**Функциональность:**
- **Готовые компоненты**: Меньше готовых решений
- **Экосистема**: Меньше плагинов и тем
- **Гибкость**: Менее гибкая настройка
- **Сообщество**: Меньше готовых решений для Obsidian
**Разработка:**
- **Кривая обучения**: Сложнее для новичков
- **Документация**: Меньше примеров для Obsidian
- **Отладка**: Сложнее отладка шаблонов
- **Кастомизация**: Требует больше знаний
**Интеграция:**
- **Obsidian специфика**: Меньше готовых решений
- **Wiki ссылки**: Требует дополнительной обработки
- **Frontmatter**: Другой формат
- **Плагины**: Ограниченная совместимость
## 11. Обработка ошибок
### 11.1 Типы ошибок
**Git ошибки:**
- Недоступность репозитория
- Конфликты при merge
- Проблемы с аутентификацией
- Отсутствие изменений
**Hugo ошибки:**
- Ошибки в конфигурации
- Проблемы с шаблонами
- Ошибки в Markdown файлах
- Недостаток ресурсов
**Системные ошибки:**
- Проблемы с файловой системой
- Проблемы с общим volume
- Проблемы с сетью
- Недостаток места на диске
### 11.2 Стратегии восстановления
**Retry логика:**
- Автоматические повторные попытки
- Экспоненциальная задержка
- Максимальное количество попыток
- Graceful degradation
**Fallback механизмы:**
- Использование последней успешной сборки
- Откат к предыдущей версии
- Уведомления администратора
- Логирование для анализа
## 12. Мониторинг и метрики
### 12.1 Ключевые метрики
**Производительность:**
- Время обработки webhook
- Время сборки Hugo
- Размер генерируемых файлов
- Частота обновлений
**Надежность:**
- Количество успешных сборок
- Количество ошибок по типам
- Время восстановления
- Доступность сервиса
**Ресурсы:**
- Использование CPU
- Использование памяти
- Использование диска
- Сетевой трафик
### 12.2 Алерты
**Критические:**
- Сборка не завершилась в течение 5 минут
- Ошибки webhook валидации
- Проблемы с файловой системой
- Недоступность сайта
**Предупреждения:**
- Высокое время сборки
- Большой размер файлов
- Частые ошибки
- Низкое место на диске
## 13. Безопасность
### 13.1 Webhook безопасность
- Валидация подписи webhook
- Проверка IP адресов
- Rate limiting
- Логирование подозрительной активности
### 13.2 Системная безопасность
- Запуск от непривилегированного пользователя
- Ограничение доступа к файлам
- Шифрование чувствительных данных
- Регулярные обновления
### 13.3 Git безопасность
- Использование SSH ключей
- Проверка подписи коммитов
- Ограничение доступа к репозиторию
- Мониторинг изменений
## 14. Развертывание
### 14.1 Docker контейнер
- Многоэтапная сборка
- Минимальный образ на Alpine
- Включение Hugo и Git
- Оптимизация размера
### 14.2 Конфигурация
- Environment variables
- Конфигурационные файлы
- Volume mounts для данных
- Health checks
### 14.3 Orchestration
- Docker Compose для разработки
- Kubernetes для production
- Автоматическое масштабирование
- Rolling updates
## 15. Преимущества миграции
### 15.1 Производительность
- **Время сборки**: С 30-60 секунд до 5-10 секунд
- **Потребление памяти**: С 512MB до 128MB
- **CPU нагрузка**: Снижение на 70-80%
- **Время загрузки**: Улучшение на 40-60%
### 15.2 Операционные
- **Простота развертывания**: Docker Compose
- **Изоляция**: Контейнеры
- **Автоматическое обновление**: Без перезагрузки сервисов
- **Масштабируемость**: Легкое горизонтальное масштабирование
- **Мониторинг**: Встроенные метрики
### 15.3 Интеграция
- **Сохранение рабочего флоу**: Obsidian → Git → Hugo
- **Сохранение структуры**: Без изменений в организации файлов
- **Граф записей**: Интерактивная визуализация связей
- **Автоматизация**: Webhook → Сборка → Деплой
- **Консистентность**: Один источник истины
- **Простота отладки**: Единый лог и контекст
## 16. Применимость
### 16.1 Идеальные сценарии
- Один пользователь или небольшая команда
- VPS с ограниченными ресурсами
- Простота развертывания важнее сложной функциональности
- Быстрая итерация и отладка
- Готовность к дополнительной настройке
### 16.2 Неподходящие сценарии
- Большие команды разработчиков
- Критически важные production системы
- Сложные требования к кастомизации
- Необходимость готовых решений "из коробки"
- Ограниченное время на настройку