Новый оплаченный заказ · нет свободного сервера · истекает аренда дедика. В Telegram дублируется, если задан токен бота и chat_id (Тарифы/Оплата).
Клиенты пишут TG-боту (тот же токен, что для уведомлений) — тикеты падают сюда. Ответ уходит клиенту в тот же чат. Категорию (помощь/баг/предложение) и закрытие клиент выбирает в боте. Статус и причину закрытия ведёшь тут.
Клиенты оставляют отзыв в боте (только покупатели). Публикуются на витрине /shop и в TG-канал. Можно скрыть/удалить/ответить. Удалённые — по галочке.
Счета с витрины и вручную созданные: клиент, тариф, срок, оплата, статус сайта.
Версия сайта, которую показывает демо (кнопка «Демо» на витрине, /?tier=…).
Обновление переразворачивает демо-инстанс на выбранный релиз, сохраняя авто-логин, ДЕМО-режим и демо-данные. Живое демо на пару секунд перезапустится.
Заранее добавляй свободные дедики — при оплате заказа сайт ставится на первый свободный. «Аренда до» — до какого числа оплачена аренда самого дедика (ведёшь вручную); если клиент оплачен дальше — сервер краснеет и придёт уведомление.
Базовый домен, от которого строятся адреса клиентских сайтов: имя сайта = «слаг клиента.домен». Пусто — прежняя схема через sslip.io. Под каждого клиента нужна своя A-запись на IP того дедика, где он стоит (клиенты на разных серверах, поэтому wildcard не подойдёт).
С токеном control plane сам заводит A-запись клиенту при развёртывании и ждёт, пока она разойдётся, — иначе Caddy не успеет выпустить сертификат. Без токена записи создаются руками.
Отредактируй лимиты/вкладки. Пустой лимит = без ограничения. Ядро (Настройки/Сотрудники/Роли) доступно всегда. Изменения действуют на новые развёртывания и при нажатии «Сменить тариф» у сайта.
Клиент платит на кошелёк и присылает хэш транзакции — TRC20 проверяется автоматически, TON — зачитываешь вручную.