✨ Реорганизация структуры заметок v2.0
- Создана новая организационная структура с эмодзи-папками - Добавлена система Inbox для быстрого захвата идей - Созданы шаблоны для всех типов заметок с YAML метаданными - Перенесен весь контент из старой структуры в новую - Добавлен главный дашборд с динамическими запросами - Создано подробное руководство по использованию системы - Техническая документация реорганизована по типам Основные улучшения: ✅ Inbox-first подход для новых заметок ✅ Тематическая организация по 8 областям знаний ✅ Шаблоны с метаданными для структурированности ✅ Система связей между заметками ✅ Динамические дашборды с аналитикой ✅ Централизованная техническая документация без дублирования
This commit is contained in:
259
⚙️ Техническое/📖 Документация/Обзор инфраструктуры.md
Normal file
259
⚙️ Техническое/📖 Документация/Обзор инфраструктуры.md
Normal 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/Администрирование]]** - Управление пользователями
|
||||
Reference in New Issue
Block a user