Files
second-mind-aep/Мой сервер/Second Mind Setup/Обзор системы.md
2025-08-04 12:49:10 +04:00

5.0 KiB
Raw Blame History

Описание

Second Mind - система автоматической публикации заметок Obsidian через Quartz с использованием Git-based workflow. Позволяет превращать локальные заметки в красивый статический сайт автоматически при каждом commit'е.

Архитектура системы

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
  • Поиск: Полнотекстовый поиск по заметкам
  • Связи: Визуализация связей между заметками

Следующие шаги

Для развертывания системы изучите: