feat(install): консольный установщик bj и первичная настройка по одноразовому коду
- cmd/bj-installer (вместо веб-мастера): проверка Debian 13 / Astra, пакеты, пользователь и каталоги, активация лицензии ключом продукта, PostgreSQL и миграции m2m_core, компоненты по лицензии с проверкой подписи, root-скрипты и службы, одноразовый код и итоговый экран с адресом http://<сервер>:8080/first-run; проверка в песочнице (--steps, --root) - bj: /first-run — пока нет пользователей и установщик оставил код, по коду создаётся первый администратор (прежние установки без файла работают как раньше) - internal/release/install.go — общая установка компонентов (bj-component-install и установщик); bj-component-install стал компонентом ядра - открытые ключи вынесены в internal/license и internal/release; миграции и файлы развёртывания встроены (migrations/embed.go, deploy/embed.go); unit bj-server исправлен - scripts/build-release.sh: сборка с версиями, подпись, публикация на сервер обновлений Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -38,14 +38,14 @@ const (
|
||||
// License — содержимое лицензии (подписывается целиком).
|
||||
type License struct {
|
||||
Schema int `json:"schema"`
|
||||
ID string `json:"id"` // UUID лицензии
|
||||
Tenant string `json:"tenant"` // организация-клиент
|
||||
Product string `json:"product"` // "bj-server"
|
||||
Plan Plan `json:"plan"` // free|pro|enterprise
|
||||
IssuedAt time.Time `json:"issued_at"` // дата выпуска
|
||||
ExpiresAt time.Time `json:"expires_at"` // дата окончания (годовой ключ)
|
||||
Features []string `json:"features,omitempty"` // "updates","web-cabinet",...
|
||||
MaxNodes int `json:"max_nodes,omitempty"` // лимит инсталляций (0 = без лимита)
|
||||
ID string `json:"id"` // UUID лицензии
|
||||
Tenant string `json:"tenant"` // организация-клиент
|
||||
Product string `json:"product"` // "bj-server"
|
||||
Plan Plan `json:"plan"` // free|pro|enterprise
|
||||
IssuedAt time.Time `json:"issued_at"` // дата выпуска
|
||||
ExpiresAt time.Time `json:"expires_at"` // дата окончания (годовой ключ)
|
||||
Features []string `json:"features,omitempty"` // "updates","web-cabinet",...
|
||||
MaxNodes int `json:"max_nodes,omitempty"` // лимит инсталляций (0 = без лимита)
|
||||
Note string `json:"note,omitempty"`
|
||||
|
||||
// Онлайн-лицензирование (lic.zetit.ru, docs/license-server-api.md): токен выдаётся
|
||||
|
||||
Reference in New Issue
Block a user