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
Как читать документацию
Начни с карты системы:
Для запуска и работы:
Для сервера:
- Серверные операции через gardenctl
- Backend API панели
- Systemd timers по slug
- Production rebuild
- Пересоздание Caddy container
Для редактора:
Для движка:
Для отладки:
Главная мысль
Для сотрудника всё должно быть просто:
Пишу заметку в Obsidian.
Публикую через Digital Garden plugin.
Сервер сам подтягивает изменения и пересобирает сайт.
Для технического обслуживания логика такая:
Контент живёт в garden repo.
Сборка делается через @duck/garden-engine.
Серверные операции делаются через duck-obsidian/.deploy/gardenctl.
Панель вызывает backend API, а API вызывает gardenctl.