## Описание 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 - **Поиск**: Полнотекстовый поиск по заметкам - **Связи**: Визуализация связей между заметками ## Следующие шаги Для развертывания системы изучите: - [[Мой сервер/Second Mind Setup/Конфигурации]] - настройки всех сервисов - [[Мой сервер/Second Mind Setup/Развертывание]] - пошаговая инструкция установки - [[Мой сервер/Second Mind Setup/Администрирование]] - обслуживание и мониторинг