Личный кабинет — модуль modules/lk: сборка в релизе, unit в комплекте, ключ вне unit-файла

Код bj-lk перенесён в modules/lk (cmd/bj-lk — запуск, флаг -version); релиз собирает bj-lk
со своей версией (LK_VERSION), unit bj-lk.service встроен в комплект установщика и берёт
адрес bj-server и ключ доступа из /etc/bj/lk.env, а не из unit-файла.

Исправлено: признаки «администратор» и «кабинет клиента» читались из общей переменной
последнего запроса (curReq) — при одновременной работе признак мог достаться чужому запросу.
Теперь из кук своего запроса. Без BJ_URL/BJ_KEY кабинет показывает подсказку настройки
вместо падения службы. Тесты: вход, портфель, health, флаг админа по запросу, без настройки.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-16 01:21:01 +03:00
parent 97e99b72c7
commit 6fee3c5ff7
7 changed files with 633 additions and 420 deletions
+28
View File
@@ -0,0 +1,28 @@
[Unit]
Description=Bridge&Join: Личный кабинет клиента (bj-lk)
Documentation=https://git.zetit.ru/zuevav/Bridge-and-Join-s
After=network-online.target bj-server.service
Wants=network-online.target
[Service]
Type=simple
User=bj
Group=bj
# Значения по умолчанию. Адрес bj-server, ключ доступа модуля (BJ_KEY), порт (LISTEN) и заголовок
# (LK_TITLE) задаются в /etc/bj/lk.env (root, 0600), чтобы ключ не лежал в unit-файле.
Environment=BJ_URL=http://127.0.0.1:8080
Environment=LISTEN=:8099
EnvironmentFile=-/etc/bj/lk.env
ExecStart=/opt/bj/bj-lk
Restart=on-failure
RestartSec=5
StandardOutput=append:/var/log/bj/bj-lk.log
StandardError=append:/var/log/bj/bj-lk.log
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
ReadWritePaths=/var/log/bj
[Install]
WantedBy=multi-user.target