barycenter/deploy/systemd/barycenter.service

56 lines
1.2 KiB
SYSTEMD
Raw Normal View History

[Unit]
Description=Barycenter OpenID Connect Identity Provider
Documentation=https://github.com/yourusername/barycenter
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=barycenter
Group=barycenter
# Paths
WorkingDirectory=/var/lib/barycenter
ExecStart=/usr/local/bin/barycenter --config /etc/barycenter/config.toml
# Security hardening
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/barycenter
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
RestrictRealtime=true
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
LockPersonality=true
MemoryDenyWriteExecute=true
RestrictNamespaces=true
SystemCallFilter=@system-service
SystemCallErrorNumber=EPERM
SystemCallArchitectures=native
# Resource limits
LimitNOFILE=65535
LimitNPROC=512
# Logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=barycenter
# Environment
Environment="RUST_LOG=info"
# Override config with environment variables:
# Environment="CRABIDP__SERVER__PUBLIC_BASE_URL=https://idp.example.com"
# Restart policy
Restart=on-failure
RestartSec=5s
StartLimitInterval=60s
StartLimitBurst=3
[Install]
WantedBy=multi-user.target