vault backup: 2025-08-04 12:44:51

This commit is contained in:
Andrey Epifancev
2025-08-04 12:44:51 +04:00
parent 265690afd1
commit c0c328dc67
4 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
## Описание
Second Mind - система автоматической публикации заметок Obsidian через Quartz с использованием Git-based workflow. Позволяет превращать локальные заметки в красивый статический сайт автоматически при каждом commit'е.
## Архитектура системы
```mermaid
graph TB
A[Gitea Repository] --> B[Webhook Service]
B --> C[Quartz Builder]
C --> D[Static Files]
D --> E[Nginx Server]
F[PostgreSQL] --> A
G[Traefik Proxy] --> A
G --> E
G --> B
```
## Основные компоненты
### Git-сервер (Gitea)
- **Назначение**: Хранение и версионирование заметок
- **Домен**: `git.aepif.ru`
- **База данных**: PostgreSQL
- **Особенности**: SSH доступ на порту 2222, webhook'и при push
### Webhook Service
- **Назначение**: Автоматическая пересборка при изменениях
- **Домен**: `webhook.aepif.ru`
- **Технология**: Node.js + Express
- **Функции**:
- Получение webhook'ов от Gitea
- Обновление локальной копии репозитория
- Запуск сборки Quartz
- Копирование результата для Nginx
### Quartz Builder
- **Назначение**: Генерация статического сайта из Markdown
- **Репозиторий**: Кастомный форк `ssh://git@git.aepif.ru:2222/aep/quartz.git`
- **Особенности**: Поддержка Obsidian-flavored Markdown, граф связей, поиск
### Веб-сервер (Nginx)
- **Назначение**: Раздача статического контента
- **Домен**: `notes.aepif.ru`
- **Особенности**: Кэширование, сжатие, защита через Authelia
### Reverse Proxy (Traefik)
- **Назначение**: Маршрутизация трафика и SSL
- **Функции**: Автоматические SSL сертификаты, балансировка, middleware
## Workflow использования
1. **Создание заметок** в Obsidian локально
2. **Commit и push** изменений в Gitea репозиторий
3. **Автоматический webhook** от Gitea запускает пересборку
4. **Webhook сервис** обновляет локальную копию и запускает Quartz
5. **Quartz генерирует** обновленный статический сайт
6. **Nginx раздает** новый контент посетителям
## Домены и доступ
| Сервис | Домен | Описание | Защита |
|--------|-------|----------|---------|
| Git-сервер | `git.aepif.ru` | Интерфейс Gitea | Авторизация |
| Статический сайт | `notes.aepif.ru` | Опубликованные заметки | Authelia |
| Webhook | `webhook.aepif.ru` | API для автоматизации | Секретный токен |
## Структура файлов
```
/DOCKER/second-mind/
├── docker-compose.yml # Основная конфигурация
├── Dockerfile # Образ для webhook сервиса
├── .env # Переменные окружения
├── nginx.conf # Конфигурация Nginx
├── webhook-server/ # Код webhook сервиса
│ ├── server.js
│ └── package.json
├── obsidian_repo/ # Локальная копия репозитория
└── quartz_build/ # Собранный статический сайт
```
## Преимущества решения
- **Автоматизация**: Публикация происходит автоматически при push
- **Версионирование**: Полная история изменений через Git
- **Безопасность**: Многоуровневая защита доступа
- **Производительность**: Статический сайт быстро загружается
- **Кастомизация**: Возможность настройки внешнего вида через Quartz
- **Поиск**: Полнотекстовый поиск по заметкам
- **Связи**: Визуализация связей между заметками
## Следующие шаги
Для развертывания системы изучите:
- [[Конфигурации]] - настройки всех сервисов
- [[Развертывание]] - пошаговая инструкция установки
- [[Администрирование]] - обслуживание и мониторинг