- Создана новая организационная структура с эмодзи-папками - Добавлена система Inbox для быстрого захвата идей - Созданы шаблоны для всех типов заметок с YAML метаданными - Перенесен весь контент из старой структуры в новую - Добавлен главный дашборд с динамическими запросами - Создано подробное руководство по использованию системы - Техническая документация реорганизована по типам Основные улучшения: ✅ Inbox-first подход для новых заметок ✅ Тематическая организация по 8 областям знаний ✅ Шаблоны с метаданными для структурированности ✅ Система связей между заметками ✅ Динамические дашборды с аналитикой ✅ Централизованная техническая документация без дублирования
8.8 KiB
8.8 KiB
Описание
Traefik Reverse Proxy - центральный компонент инфраструктуры aepif.ru, обеспечивающий маршрутизацию трафика, автоматические SSL сертификаты и интеграцию с системой аутентификации.
Архитектура системы
graph TB
A[Internet] --> B[Traefik v3.0]
B --> C[Second Mind - notes.aepif.ru]
B --> D[Gitea - git.aepif.ru]
B --> E[Authelia - auth.aepif.ru]
B --> F[Webhook Service - webhook.aepif.ru]
B --> G[Traefik Dashboard - traefik.aepif.ru]
H[Let's Encrypt] --> B
I[Docker Socket] --> B
subgraph "SSL Certificates"
H
J[ACME Storage]
end
subgraph "Service Discovery"
I
K[Docker Labels]
end
Основные функции
Reverse Proxy
- Назначение: Централизованная точка входа для всех сервисов
- Технология: Traefik v3.0
- Порты:
- 80 (HTTP) - автоматический редирект на HTTPS
- 443 (HTTPS) - основной трафик
- 8080 - Dashboard (небезопасен в production)
- 2222 - SSH для Git-сервера
SSL Management
- Let's Encrypt: Автоматическое получение и обновление сертификатов
- ACME Challenge: TLS challenge для валидации доменов
- Автоматический редирект: HTTP → HTTPS для всех сервисов
- Хранение: Персистентные сертификаты в volume
Service Discovery
- Docker Integration: Автоматическое обнаружение сервисов через Docker API
- Label-based Configuration: Настройка маршрутизации через Docker labels
- Dynamic Configuration: Изменения конфигурации без перезапуска
Конфигурация
Docker Compose
Основная конфигурация в /DOCKER/reverse-proxy/docker-compose.yml:
services:
traefik:
image: traefik:v3.0
command:
- --api.dashboard=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --entrypoints.ssh.address=:2222
- --certificatesresolvers.letsencrypt.acme.tlschallenge=true
ports:
- "80:80"
- "443:443"
- "8080:8080"
- "2222:2222"
Entrypoints
- web (80): HTTP трафик с редиректом на HTTPS
- websecure (443): HTTPS трафик
- ssh (2222): TCP трафик для Git SSH
Middlewares
- redirect-to-https: Автоматический редирект HTTP → HTTPS
- authelia@docker: Интеграция с Forward Auth
Маршрутизация
HTTP Routes
| Домен | Сервис | Middleware | Порт |
|---|---|---|---|
notes.aepif.ru |
Second Mind | authelia@docker | 80 |
git.aepif.ru |
Gitea | - | 3000 |
auth.aepif.ru |
Authelia | - | 9091 |
webhook.aepif.ru |
Webhook Service | - | 3000 |
traefik.aepif.ru |
Dashboard | - | api@internal |
TCP Routes
- SSH Git Access:
git.aepif.ru:2222→ Gitea container port 22
Сетевая архитектура
Proxy Network
networks:
proxy:
name: proxy
driver: bridge
Все сервисы, которые должны быть доступны через Traefik, подключаются к сети proxy.
Labels Configuration
Пример конфигурации сервиса через labels:
labels:
- traefik.enable=true
- traefik.http.routers.service.rule=Host(`service.aepif.ru`)
- traefik.http.routers.service.tls.certresolver=letsencrypt
- traefik.http.services.service.loadbalancer.server.port=80
SSL Сертификаты
Let's Encrypt Integration
- Email:
your_email@aepif.ruдля уведомлений - Challenge Type: TLS Challenge
- Storage:
/data/acme.jsonв контейнере - Автоматическое обновление: Traefik обновляет сертификаты автоматически
Wildcard Certificates
Для поддержки wildcard сертификатов потребуется DNS Challenge с API ключами DNS провайдера.
Dashboard
Доступ
- URL:
https://traefik.aepif.ru - Порт: 8080 (insecure mode)
- Функции: Мониторинг роутеров, сервисов, middleware
Безопасность
⚠️ Внимание: Dashboard в текущей конфигурации доступен без аутентификации. В production рекомендуется:
- Отключить insecure API (
--api.insecure=false) - Добавить middleware для аутентификации
- Ограничить доступ по IP
Мониторинг
Metrics
- Prometheus: Встроенная поддержка метрик Prometheus
- Health Checks: Автоматические проверки состояния backend сервисов
- Access Logs: Детальные логи запросов
Troubleshooting
# Проверка статуса Traefik
curl -I https://traefik.aepif.ru
# Логи Traefik
docker logs traefik -f
# Проверка конфигурации
docker exec traefik traefik version
Безопасность
TLS Configuration
- Минимальная версия: TLS 1.2
- Cipher Suites: Современные безопасные шифры
- HSTS: HTTP Strict Transport Security headers
Rate Limiting
Можно настроить ограничение запросов через middleware:
labels:
- traefik.http.middlewares.ratelimit.ratelimit.burst=100
- traefik.http.middlewares.ratelimit.ratelimit.average=50
Производительность
Load Balancing
- Алгоритм: Round Robin (по умолчанию)
- Health Checks: Автоматическое исключение неисправных backend'ов
- Connection Pooling: Переиспользование соединений
Caching
- Static Content: Заголовки кеширования для статических файлов
- Compression: Автоматическое сжатие ответов
Структура файлов
/DOCKER/reverse-proxy/
├── docker-compose.yml # Основная конфигурация Traefik
└── volumes/
└── traefik_data/ # ACME сертификаты и данные
└── acme.json # Let's Encrypt сертификаты
Интеграции
Docker Integration
- Automatic Service Discovery: Обнаружение сервисов через Docker API
- Label-based Configuration: Настройка через labels в docker-compose
- Hot Reload: Изменения применяются без перезапуска
Authelia Integration
- Forward Auth: Интеграция с Authelia для централизованной аутентификации
- Headers: Передача информации о пользователе в backend сервисы
Backup и восстановление
Критически важные данные
- acme.json: SSL сертификаты Let's Encrypt
- docker-compose.yml: Конфигурация сервиса
- traefik.yml: Статическая конфигурация (если используется)
Процедура backup
# Backup SSL сертификатов
docker cp traefik:/data/acme.json ./backup/acme.json
# Backup всего volume
docker run --rm -v traefik_data:/data -v $(pwd):/backup alpine tar czf /backup/traefik_data.tar.gz -C /data .
Связанные сервисы
- Мой сервер/Authelia Authentication/Обзор системы - аутентификация через Forward Auth
- Мой сервер/Second Mind Setup/Обзор системы - защищенный доступ к заметкам
- Мой сервер/Git Service/Обзор системы - HTTP и SSH доступ к Git
Связанные документы
- Traefik Reverse Proxy - Конфигурации - детальные настройки и параметры
- Traefik Reverse Proxy - Развертывание - пошаговая установка
- Traefik Reverse Proxy - Администрирование - обслуживание и мониторинг