▤ Руководства

Тарифы и квоты

Содержание

По умолчанию выключено: все пользователи без ограничений. Включение — переключатель в «Админка → Тарифы и квоты» или переменная SEOMASTER_PLANS=1 (config plans_enabled).

Планы

open (без ограничений), free, pro, agency. Лимит -1 — без ограничения. Каталог правится в админке и сохраняется в storage/plans.json; «сбросить» возвращает значения по умолчанию. Администратор (пользователь 1) всегда на плане open.

Ограничиваемое: сайты, проверки доступности, страж изменений, запросы позиций, конкуренты на сайт, страниц за обход, обходов в сутки, проекты. Жёсткие потолки сервиса действуют поверх тарифа.

Назначение

Админка: пользователь, план, срок (until), заметка. Всё пишется в журнал plan_log. Истёкший план заменяется планом по умолчанию (plans_default). Пробный период при регистрации: plans_trial_days > 0 и plans_trial_plan.

Cron

bin/plans.php раз в сутки: истечение планов, предупреждения за 3 дня до окончания, события quota-<ключ> при 80% и 100% (повтор не чаще раза в 7 суток). События попадают в «Диспетчерскую» (сигнал account.quota).

Поведение

Уже добавленное сверх лимита не удаляется — блокируется только новое добавление; при импорте запросов лишнее обрезается с сообщением. Оплата — см. docs/COMMERCE.md (с v85); назначение плана вручную тоже работает; контакт для апгрейда без оплаты — plans_contact.

Бонусные тарифы (v131)

Бонус — дополнение к основному плану пользователя: готовый тариф из каталога (в том числе «Без ограничений») и/или свои лимиты (пустое поле — «как в основном», -1 — без ограничения), бессрочно или до даты. По каждому лимиту действует лучшее из основного тарифа и всех действующих бонусов; основной тариф, его срок и оплата не меняются. В «Админка → Тарифы → Бонусные тарифы» бонус выдаётся пользователю (по почте или номеру), группе (всем или всем на выбранном тарифе — акция), отзывается; кнопка «Безлимитный бонус мне» выдаёт безлимит вашему аккаунту. Владелец (№ 1) по умолчанию без ограничений; переключатель «Тарифы действуют и на владельца» нужен, чтобы проверять сервис глазами клиента, — тогда безлимит владельцу возвращает бонус. Пользователь видит бонус в «Мой тариф» и в GET /api/v1/me (plan.bonuses); за три дня до конца и по окончании бонуса приходит событие. Все выдачи и отзывы пишутся в журнал действий.

Данные

Таблицы user_plan, plan_log, plan_bonus (модуль plans); входят в экспорт и удаление аккаунта.

Гибкие тарифы, квота диска и свои ключи API (v150)

Редактор тарифов («Админка → Тарифы → Тарифы и их лимиты»): название, текст цены, описание, режим API, видимость в списке, порядок и все лимиты, включая число сайтов («Сайты в мониторинге») и место на диске (МБ). Можно добавить свой тариф (лимиты копируются с существующего), удалить свой тариф (встроенные только скрываются; тариф с пользователями или по умолчанию удалить нельзя) и сбросить каталог. Цену для оплаты задаёт раздел «Оплата».

Режим API — поле тарифа. «Ключи сервиса»: внешние API (PageSpeed, Safe Browsing, Web Risk, VirusTotal) оплачивает сервис, это входит в цену. «Свои ключи»: ключи сервиса пользователю не выдаются, он подключает API сам на странице «Мой тариф → Свои ключи API», а их стоимость в оплату тарифа не входит; расходы владельца на эти API не растут. Свой ключ всегда важнее ключа сервиса и на обычных тарифах. Режим действует в веб-интерфейсе, в API и MCP, а также в фоновых задачах (задача запоминает, чей запрос её поставил). Фоновые задачи без пользователя (например, анонимная проверка на главной) идут на ключах сервиса. Ключи хранятся зашифрованно (own_<сервис> в подключениях).

Место на диске. Лимит disk_mb задаётся в тарифе (-1 — без ограничения). Занятое место — оценка по размеру крупных данных пользователя (обходы, снимки стража, скриншоты и проверки рендеринга, кэш API, журнал вебхуков, история, данные внешних сервисов); результат кэшируется на disk_cache_sec. Состояния: ok; warn (с disk_warn_pct, по умолчанию 80 %) — подсказка и событие; over (больше лимита, но в пределах запаса disk_grace_pct, 10 %) — предупреждение, всё работает; blocked (больше лимита с запасом) — при режиме «блокировать» не запускаются новые глубокие обходы (в том числе по расписанию) и проверки рендеринга/скриншоты; чтение и остальные функции работают, данные не удаляются. Режим «только предупреждать» ничего не блокирует. Пользователь видит предупреждение в «Мой тариф», на странице «Место на диске» (/account/storage) — разбивку по разделам и очистку: старые обходы (кроме последнего по каждому сайту), старые снимки стража, скриншоты и проверки рендеринга, кэш ответов, журнал вебхуков, старую историю, снимки внешних сервисов. Возраст «старого» задаётся в настройках («Админка → Тарифы → Место на диске»). В предупреждении предлагается следующий видимый тариф с большим местом. Ежедневный bin/plans.php создаёт событие quota-disk. Владелец сервиса не ограничивается.