incident-checklists
Чеклист инцидентов
Garden не открывается публично
curl -I https://<slug>.obsidians.otc.guru/
curl -I http://127.0.0.1:<port>/
cd /home/supervisor/leonid_projects/duck-obsidian/.deploy
./gardenctl status <slug>
sudo nginx -t
sudo systemctl status nginx --no-pager
docker ps --filter "name=<slug>-garden"
Если локальный порт работает, а домен нет — nginx/domain/certbot.
Если локальный порт не работает — docker/caddy/build.
Rebuild падает
cd /home/supervisor/leonid_projects/duck-obsidian/.deploy
./gardenctl logs <slug>
tail -n 200 /home/supervisor/leonid_projects/obsidians/<slug>/logs/deploy.log
Потом локально в site:
cd /home/supervisor/leonid_projects/obsidians/<slug>/site
npm run build
npm run assert:dist
Timer мешает ручным правкам
cd /home/supervisor/leonid_projects/duck-obsidian/.deploy
./gardenctl pause <slug>
./gardenctl stop-service <slug>
Проверка lock:
sudo lslocks | grep <slug>-deploy || true
Вернуть:
./gardenctl resume <slug>
Build не создал dist/index.html
Проверить Home note:
find src/site/notes -maxdepth 5 -type f | sort
grep -R "dg-home\|gardenEntry\|permalink: /" src/site/notes || true
Нужен один из признаков:
dg-home: true
или:
tags:
- gardenEntry
Wikilink ведёт на /404
find src/site/notes -maxdepth 5 -type f | sort
grep -R "\[\[.*\]\]" src/site/notes | head -50
Проверить, что целевая note опубликована:
dg-publish: true
Картинка 404
cd /home/supervisor/leonid_projects/obsidians/<slug>/site
DUCK_DEBUG_IMAGES=1 npm run build
find . -iname 'имя-файла.jpg' -print
find dist/img/user -maxdepth 5 -type f | sort
Потом публично:
curl -I 'https://<slug>.obsidians.otc.guru/img/user/...'
Панель: 401 Unauthorized
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
Если напрямую ok, проверить Nginx:
proxy_set_header Authorization "Bearer long-random-token";
Панель: 504 Gateway Timeout
Проверить Nginx timeouts:
proxy_connect_timeout 60s;
proxy_send_timeout 900s;
proxy_read_timeout 900s;
send_timeout 900s;
Применить:
sudo nginx -t
sudo systemctl reload nginx
Engine test branch забыли в production
Проверить:
cd /home/supervisor/leonid_projects/obsidians/<slug>/site
cat package.json | grep '@duck/garden-engine'
cat garden.config.json | grep -A3 '"engine"'
Для production dependency должна быть по tag:
git+ssh://git@github.com/leo-mmmmmmm/duck-garden-engine.git#vX.Y.Z
Не по debug branch.