Skip to content

Latest commit

 

History

History
74 lines (48 loc) · 3.92 KB

File metadata and controls

74 lines (48 loc) · 3.92 KB

OPS — эксплуатация self-hosted КАР-точек

Короткий runbook для владельца инстанса (админ Cloudflare Pages + Supabase).

Важно: приложение само по себе не собирает телеметрию и не делает «автоматическое восстановление». Поэтому лучше иметь этот чеклист под рукой.

1) Что обновлять в первую очередь

  • Supabase: делайте миграции через npm run db:push и сверяйте миграции с supabase/MIGRATIONS.md.
  • Cloudflare Pages: обновления деплойте только когда CI зелёный.

2) Порядок деплоя

A. Обновление кода

  1. Ввести ключи в GitHub Secrets (см. docs/cloudflare-pages-setup.md).
  2. Убедиться, что PR в main проходит CI.
  3. После merge на main дождаться workflow deploy-cloudflare-pages.yml.

B. После деплоя: smoke-check

  • Откройте https://kar-tochki.pages.dev/ (или ваш домен).
  • Убедитесь, что в dist/_headers применяется CSP (ошибки CSP обычно видны сразу).
  • Проверьте, что sw.js содержит текущую версию: в sw.js есть строка kar-v*.

3) Rollback (откат)

Если после деплоя что-то сломалось:

  1. Найдите предыдущий рабочий тег релиза в GitHub.
  2. Сделайте новый commit на main, который возвращает состояние к этому тэгу.
  3. Дождитесь очередного deploy.

В Cloudflare Pages нативный rollback по коммиту обычно проще сделать «перезаливом» предыдущего коммита.

4) Secrets и BYOK

Ключи в settings клиента BYOK (Supadata/Gemini/Groq/stock). Серверные секреты — только для Functions.

  • GEMINI_API_KEY
  • GROQ_API_KEY
  • SUPADATA_API_KEY (если используется серверный режим)
  • CLOUDFLARE_* токены и account id — для деплоя

Ротация:

  1. Отзовите ключ у провайдера.
  2. Обновите Secret/настройку в инстансе.
  3. Пользователям: либо сменить ключ в Настройках → интеграции.

5) KV YT_JOBS (очистка/устойчивость)

Jobs пишутся в KV на время выполнения генерации и транскрипта.

  • Если стали чаще появляться ошибки pending/timeout:
    • проверьте общий rate-limit
    • убедитесь, что KV биндинг существует в Pages Functions
    • смотрите логи Functions (Logpush/другие инструменты)

6) Schema banner / миграции

При несоответствии схемы приложение показывает banner.

  • Механика: REQUIRED_SCHEMA_VERSION в js/data/schema-version.ts должен совпасть с применёнными миграциями.
  • Решение: выполнить миграции (Supabase) и деплой фронта.

7) Устранение проблем

  • Если вы видите CSP ошибки: проверьте public/_headers и что они реально попали в dist/_headers.
  • Если видите 429: это сработали лимиты Worker’а → попробуйте позже или снизьте активность.

8) Где искать логи

  • Cloudflare Pages Functions: используйте встроенные логи/Logpush.
  • Supabase: таблицы ошибок и RLS policies.