Files
Bridge-and-Join-s/deploy/systemd/bj-server.service
T
zuevav 4135435b51 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>
2026-09-15 23:56:44 +03:00

49 lines
1.5 KiB
Desktop File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[Unit]
Description=Bridge-and-Join-s — единый сервис M2M-переводов
Documentation=https://git.zetit.ru/zuevav/Bridge-and-Join-s
After=network-online.target postgresql.service
Wants=network-online.target
[Service]
Type=simple
User=bj
Group=bj
WorkingDirectory=/opt/bj
ExecStart=/opt/bj/bj-server
Restart=on-failure
RestartSec=5
# Конфигурация — через ENV или ~/.bj/setup.json (UI /admin/setup).
Environment=BJ_HTTP_ADDR=:8080
Environment=BJ_SETUP_PATH=/var/lib/bj/.bj/setup.json
Environment=BJ_M2M_SENDER=MC0079200000
Environment=BJ_M2M_RECEIVER=MC0010300000
# КриптоПро CSP кладёт .so в /opt/cprocsp/lib/amd64 без записи в
# /etc/ld.so.conf.d. Чтобы Go-PKCS#11 клиент (cryptocli) нашёл
# libcppkcs11.so и его зависимости (libcapi20, libcpext, liburlretrieve),
# подмешиваем путь через LD_LIBRARY_PATH. Без этого Initialize() падает
# с CKR_FUNCTION_FAILED или 'cannot open shared object file'.
Environment=LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64
# Безопасность.
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
ReadWritePaths=/var/lib/bj /var/log/bj /run/bj
StandardOutput=append:/var/log/bj/bj-server.log
StandardError=append:/var/log/bj/bj-server.err
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
RestrictSUIDSGID=true
LockPersonality=true
# Лимиты.
LimitNOFILE=65536
TasksMax=512
[Install]
WantedBy=multi-user.target