README

Duck Obsidian Family — документация семейства проектов

Эта документация описывает семейство проектов Duck Obsidian человеческим языком: что для чего нужно, куда идти, какие команды вводить на сервере и как отлаживать проблемы.

Документация вынесена отдельно от репозиториев. Её можно читать как runbook для разработки, сервера, редактора и админской панели.

Из чего состоит система

Репозиторий Роль
duck-obsidian-panel Админская панель в браузере. Показывает gardens, запускает rebuild, enable/disable, delete и создание garden через API.
duck-obsidian Серверный runner: gardenctl, backend API для панели, systemd, nginx, docker/caddy, certbot.
duck-obsidian-template Шаблон нового garden-репозитория: vault, src/site/notes, garden.config.json, npm-команды.
duck-garden-engine npm-движок сборки: берёт опубликованные заметки и собирает static site в dist/.

Общая схема:

Obsidian vault
  -> Digital Garden plugin
  -> garden GitHub repo / src/site/notes
  -> duck-obsidian systemd timer
  -> pull-and-rebuild.sh
  -> @duck/garden-engine
  -> dist/
  -> Caddy container
  -> nginx
  -> https://<slug>.obsidians.otc.guru

Админская схема:

admin.obsidians.otc.guru
  -> nginx Basic Auth
  -> static Next.js panel
  -> /api/*
  -> backend API на 127.0.0.1:3017
  -> duck-obsidian/.deploy/gardenctl
  -> systemd/docker/nginx/certbot

Как читать документацию

Начни с карты системы:

Для запуска и работы:

Для сервера:

Для редактора:

Для движка:

Для отладки:

Главная мысль

Для сотрудника всё должно быть просто:

Пишу заметку в Obsidian.
Публикую через Digital Garden plugin.
Сервер сам подтягивает изменения и пересобирает сайт.

Для технического обслуживания логика такая:

Контент живёт в garden repo.
Сборка делается через @duck/garden-engine.
Серверные операции делаются через duck-obsidian/.deploy/gardenctl.
Панель вызывает backend API, а API вызывает gardenctl.