Как работают лицензии, Call-Home, апдейты и откат — и почему твои данные при этом в безопасности.
d0pe проверяет криптографически подписанную лицензию, привязанную к твоему hardware id. Маленький heartbeat (без данных лидов) держит фиче-флаги актуальными и ловит клонированные снапшоты VPS.
Когда выходит новая подписанная версия, владелец видит в CRM баннер «Доступно обновление». Один клик по «Обновить сейчас» пинит новую версию, тянет подписанный образ и катит api / worker / beat / web; миграции базы прогоняются автоматически на первом старте. На боксе ничего не собирается — ты только тянешь готовый подписанный образ. Через консоль? Подними CRM_VERSION в .env и docker compose up -d, либо запусти ./update.sh.
Апдейт — как и откат — меняет только образ приложения. База, аналитика и файлы лежат в Docker-томах, которых апдейт не касается, так что Postgres поднимается на том же томе со всеми лидами, потоками и статусами. Это подмена образа поверх тех же данных, а не переустановка. По привычке всё же делай снапшот базы перед крупным апдейтом (см. «Бэкап и восстановление»).
Откат — тот же механизм в обратную сторону: выбери любую более раннюю опубликованную версию в панели апдейтов или запусти ./rollback.sh <версия>, и приложение откатится на неё на тех же данных. Раз это просто повторная тяга старого образа поверх нетронутых томов — ни один лид не теряется.
Сетевой сбой или короткий даунтайм тебя не затронут — щедрое grace-окно (по умолчанию 72ч) держит инстанс полностью рабочим. Только окончательный вердикт «истекла / приостановлена» за пределами grace переводит CRM в режим только-чтение: данные целы, всё можно смотреть и экспортировать, новые записи ставятся на паузу до продления, а инстанс возвращается в норму на следующем heartbeat после оплаты.