Files
Andrey Epifancev e96fec3709 Реорганизация структуры заметок v2.0
- Создана новая организационная структура с эмодзи-папками
- Добавлена система Inbox для быстрого захвата идей
- Созданы шаблоны для всех типов заметок с YAML метаданными
- Перенесен весь контент из старой структуры в новую
- Добавлен главный дашборд с динамическими запросами
- Создано подробное руководство по использованию системы
- Техническая документация реорганизована по типам

Основные улучшения:
 Inbox-first подход для новых заметок
 Тематическая организация по 8 областям знаний
 Шаблоны с метаданными для структурированности
 Система связей между заметками
 Динамические дашборды с аналитикой
 Централизованная техническая документация без дублирования
2025-08-09 22:11:50 +04:00

5.4 KiB
Raw Permalink Blame History

Описание

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

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

graph TB
    A[External Gitea Repository] --> B[Webhook Service]
    B --> C[Quartz Builder]
    C --> D[Static Files]
    D --> E[Nginx Server]
    F[Traefik Proxy] --> E
    F --> B
    
    subgraph "Second Mind Container"
        B
        C
    end
    
    subgraph "External Services"
        A
        F
    end

Основные компоненты

External Git-сервер (Gitea)

  • Назначение: Хранение и версионирование заметок
  • Домен: git.aepif.ru
  • Особенности: Отдельный сервис, SSH доступ на порту 2222, webhook'и при push
  • Репозиторий: http://gitea:3000/admin/second-mind-aep.git

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      # Основная конфигурация (только Nginx + Webhook)
├── Dockerfile             # Кастомный образ для webhook сервиса
├── nginx.conf            # Конфигурация Nginx для статических файлов
├── webhook-server/       # Код webhook сервиса
│   ├── server.js        # Node.js сервер для обработки webhooks
│   └── package.json     # Зависимости Node.js
├── obsidian_repo/        # Локальная копия Git-репозитория
└── quartz_build/         # Собранные статические файлы для Nginx

Примечание: Gitea и PostgreSQL развернуты отдельно в /DOCKER/git/

Преимущества решения

  • Автоматизация: Публикация происходит автоматически при push
  • Версионирование: Полная история изменений через Git
  • Безопасность: Многоуровневая защита доступа
  • Производительность: Статический сайт быстро загружается
  • Кастомизация: Возможность настройки внешнего вида через Quartz
  • Поиск: Полнотекстовый поиск по заметкам
  • Связи: Визуализация связей между заметками

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

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