Реорганизация структуры заметок 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,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/Администрирование]]** - Управление пользователями