summaryrefslogtreecommitdiffhomepage
path: root/packaging/dispatch-api.service
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/dispatch-api.service')
-rw-r--r--packaging/dispatch-api.service33
1 files changed, 33 insertions, 0 deletions
diff --git a/packaging/dispatch-api.service b/packaging/dispatch-api.service
new file mode 100644
index 0000000..ccbb727
--- /dev/null
+++ b/packaging/dispatch-api.service
@@ -0,0 +1,33 @@
+[Unit]
+Description=Dispatch API Backend
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=dispatch
+Group=dispatch
+WorkingDirectory=/opt/dispatch
+ExecStart=/usr/bin/bun packages/api/src/index.ts
+EnvironmentFile=-/etc/dispatch/dispatch-api.conf
+Restart=on-failure
+RestartSec=5
+StandardOutput=journal
+StandardError=journal
+
+# Data directory: systemd creates /var/lib/dispatch owned by dispatch:dispatch
+StateDirectory=dispatch
+
+# Tell the app to store its SQLite DB under /var/lib/dispatch/
+Environment=XDG_DATA_HOME=/var/lib
+
+# Security hardening
+ProtectSystem=strict
+ProtectHome=true
+NoNewPrivileges=true
+PrivateTmp=true
+PrivateDevices=true
+RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
+
+[Install]
+WantedBy=multi-user.target