quick-start

Быстрый старт

Проверить сервер

cd /home/supervisor/leonid_projects/duck-obsidian/.deploy
./gardenctl doctor

Если doctor ругается, сначала исправить зависимости сервера: git, docker, docker compose, nginx, systemctl, journalctl, sudo, ss, sed.

Посмотреть gardens

Через CLI:

cd /home/supervisor/leonid_projects/duck-obsidian/.deploy
./gardenctl list

Через API:

TOKEN="$(sudo awk -F= '$1=="DUCK_PANEL_TOKEN"{print $2}' /etc/duck-garden-panel.env)"

curl -s \
  -H "Authorization: Bearer $TOKEN" \
  http://127.0.0.1:3017/api/gardens

Через UI:

https://admin.obsidians.otc.guru

Создать garden через CLI

cd /home/supervisor/leonid_projects/duck-obsidian/.deploy

./gardenctl create \
  --slug obsidian-duck-guide \
  --domain obsidian-duck-guide.obsidians.otc.guru \
  --repo git@github.com:leo-mmmmmmm/obsidian-duck-guide.git \
  --port 8089 \
  --engine-version 1.0.18

Что произойдёт:

GitHub repo -> /home/supervisor/leonid_projects/obsidians/<slug>/site
шаблон -> garden repo, если repo пустой
systemd timer/service -> <slug>-pull.timer / <slug>-pull.service
nginx config -> /etc/nginx/sites-available/<domain>
Docker/Caddy -> отдаёт site/dist/
certbot -> включает HTTPS, если разрешено

Подробнее: gardenctl.

Пересобрать production garden

cd /home/supervisor/leonid_projects/duck-obsidian/.deploy
./gardenctl rebuild obsidian-duck-guide

Проверить публичную страницу:

curl -I https://obsidian-duck-guide.obsidians.otc.guru/

Проверить конкретный asset:

curl -I 'https://obsidian-duck-guide.obsidians.otc.guru/img/user/foto/2026-06-15%2014.57.12.jpg'

Ожидаемо:

HTTP/1.1 200 OK

Подробнее: production rebuild.

Остановить auto-update перед ручными правками

cd /home/supervisor/leonid_projects/duck-obsidian/.deploy
./gardenctl pause obsidian-duck-guide

Вернуть обратно:

./gardenctl resume obsidian-duck-guide

Подробнее: timers.

Проверить engine локально в garden

cd /home/supervisor/leonid_projects/obsidians/obsidian-duck-guide/site
sudo rm -rf node_modules package-lock.json dist .duck-garden
sudo chown -R supervisor:supervisor .
npm install --no-audit --no-fund
npm run build
node node_modules/@duck/garden-engine/scripts/assert-dist.js

Подробнее: проверка engine до release.

Что читать дальше