НПР / УДС — отдельная служба bj-npr
Модуль вынесен в modules/npr + cmd/bj-npr (127.0.0.1:8083), обновляется независимо от ядра. Служба читает подключение из setup.json и принимает запросы только со служебным ключом модулей (/var/lib/bj/.bj/module.key, создаёт bj-server). Полные страницы отдаются фрагментом (X-BJ-Layout: page). bj-server хранит настройки и проверку подключения, проксирует /admin/npr после входа, прав и лицензии и встраивает страницы модуля в общий макет (admin.modulePage); если служба не отвечает — понятная страница. Unit bj-npr.service встроен в установщик, установщик включает службы установленных модулей; build-release.sh собирает bj-npr. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -609,8 +609,15 @@ func (in *installer) stepServices() (string, error) {
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
enable := []string{"enable", "bj-keymedia.service", "bj-server.service"}
|
||||
// службы установленных модулей (bj-npr и т. п.), для которых есть unit-файл
|
||||
for name := range release.LoadInstalled(in.P(release.InstalledFile)) {
|
||||
if c, ok := release.ComponentByName(name); ok && !c.Core && c.Unit != "" && unitTemplate(c.Unit) {
|
||||
enable = append(enable, c.Unit+".service")
|
||||
}
|
||||
}
|
||||
if in.root == "" {
|
||||
for _, c := range [][]string{{"daemon-reload"}, {"enable", "bj-keymedia.service", "bj-server.service"}} {
|
||||
for _, c := range [][]string{{"daemon-reload"}, enable} {
|
||||
if out, err := run("systemctl", c...); err != nil {
|
||||
return "", fmt.Errorf("systemctl %s: %v %s", strings.Join(c, " "), err, out)
|
||||
}
|
||||
@@ -625,7 +632,13 @@ func (in *installer) stepFirstRun() (string, error) {
|
||||
return "", err
|
||||
}
|
||||
if in.root == "" {
|
||||
for _, unit := range []string{"bj-keymedia", "bj-server"} {
|
||||
units := []string{"bj-keymedia", "bj-server"}
|
||||
for name := range release.LoadInstalled(in.P(release.InstalledFile)) {
|
||||
if c, ok := release.ComponentByName(name); ok && !c.Core && c.Unit != "" && unitTemplate(c.Unit) {
|
||||
units = append(units, c.Unit)
|
||||
}
|
||||
}
|
||||
for _, unit := range units {
|
||||
if out, err := run("systemctl", "restart", unit); err != nil {
|
||||
return "", fmt.Errorf("запуск %s: %v %s", unit, err, out)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user