[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/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 ProtectKernelTunables=true ProtectKernelModules=true ProtectControlGroups=true RestrictSUIDSGID=true LockPersonality=true # Лимиты. LimitNOFILE=65536 TasksMax=512 [Install] WantedBy=multi-user.target