Bulk Signer - Setup with Linux systemd
The host detects systemd mode automatically via Microsoft.Extensions.Hosting.Systemd.
Publish
dotnet publish src/Lacuna.BulkSigner/Lacuna.BulkSigner.csproj -c Release -r linux-x64 --self-contained false -o /opt/lacuna-bulksigner
Unit file
/etc/systemd/system/lacuna-bulksigner.service:
[Unit]
Description=Lacuna Bulk Signer v2
After=network-online.target
Wants=network-online.target
[Service]
WorkingDirectory=/opt/lacuna-bulksigner
ExecStart=/usr/bin/dotnet /opt/lacuna-bulksigner/Lacuna.BulkSigner.dll
Restart=on-failure
RestartSec=10
SyslogIdentifier=lacuna-bulksigner
User=lacuna
Environment=ASPNETCORE_ENVIRONMENT=Production
EnvironmentFile=/etc/lacuna-bulksigner/secrets.env
KillMode=process
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
/etc/lacuna-bulksigner/secrets.env (mode 0600, owned by lacuna):
BULKSIGNER_API_KEY=your-api-key
BULKSIGNER_PFX_PASSWORD=your-pfx-password
Signing__License=<lacuna-license-string>
Enable and start
sudo useradd --system --no-create-home lacuna
sudo chown -R lacuna:lacuna /opt/lacuna-bulksigner /var/lib/lacuna-bulksigner
sudo systemctl daemon-reload
sudo systemctl enable --now lacuna-bulksigner.service
sudo journalctl -u lacuna-bulksigner -f
Logs:
- Structured rolling logs:
data/logs/(relative to working directory) or whereverFolders:Logsis configured. journalctlcaptures Spectre stdout output.
Upgrade
sudo systemctl stop lacuna-bulksigner
# copy new files over /opt/lacuna-bulksigner
sudo systemctl start lacuna-bulksigner