add systemd templates

This commit is contained in:
2026-06-24 18:52:56 +03:00
parent 7ebfea097d
commit b41d8023b6
7 changed files with 101 additions and 0 deletions
+66
View File
@@ -90,6 +90,72 @@ later heartbeat.
make [client|server]
```
## systemd templates
Template units are available in:
```text
template/systemd/nexus-sync-server.service
template/systemd/nexus-sync-client.service
template/systemd/nexus-sync-client.timer
```
Replace `ExecStart` with the absolute path to your built binary or script before installing.
For example:
```ini
ExecStart=/opt/nexus-sync/nexus-sync-server
```
The client is a oneshot service triggered by a timer every minute.
### Install server service
```bash
sudo install -Dm644 template/systemd/nexus-sync-server.service \
/etc/systemd/system/nexus-sync-server.service
sudo editor /etc/systemd/system/nexus-sync-server.service
sudo mkdir -p /var/lib/nexus-sync
sudo systemctl daemon-reload
sudo systemctl enable --now nexus-sync-server.service
```
Optional server env file used by the template:
```bash
sudo install -Dm600 .env.example /etc/nexus-sync/server.env
sudo editor /etc/nexus-sync/server.env
sudo systemctl restart nexus-sync-server.service
```
### Install client timer
```bash
sudo install -Dm644 template/systemd/nexus-sync-client.service \
/etc/systemd/system/nexus-sync-client.service
sudo install -Dm644 template/systemd/nexus-sync-client.timer \
/etc/systemd/system/nexus-sync-client.timer
sudo editor /etc/systemd/system/nexus-sync-client.service
sudo systemctl daemon-reload
sudo systemctl enable --now nexus-sync-client.timer
```
Install the client YAML config separately, for example:
```bash
sudo install -Dm600 template/linux.yaml /root/.config/nexus/config.yaml
sudo editor /root/.config/nexus/config.yaml
```
Check status and logs:
```bash
systemctl status nexus-sync-server.service
systemctl list-timers nexus-sync-client.timer
journalctl -u nexus-sync-server.service -f
journalctl -u nexus-sync-client.service -f
```
### To test
```
@@ -0,0 +1,8 @@
[Unit]
Description=nexus-sync client heartbeat and command runner
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/absolute/path/to/nexus-sync-client
+12
View File
@@ -0,0 +1,12 @@
[Unit]
Description=Run nexus-sync client every minute
[Timer]
OnBootSec=30s
OnUnitActiveSec=1min
AccuracySec=5s
Persistent=true
Unit=nexus-sync-client.service
[Install]
WantedBy=timers.target
@@ -0,0 +1,15 @@
[Unit]
Description=nexus-sync server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/absolute/path/to/nexus-sync-server
Restart=on-failure
RestartSec=5s
EnvironmentFile=-/etc/nexus-sync/server.env
WorkingDirectory=/var/lib/nexus-sync
[Install]
WantedBy=multi-user.target