mirror of
https://codeberg.org/postscriptum/snac2nex.git
synced 2026-03-31 13:15:27 +00:00
add systemd configuration example
This commit is contained in:
parent
1e3043d683
commit
b33f1ad1b3
1 changed files with 47 additions and 0 deletions
47
README.md
47
README.md
|
|
@ -74,6 +74,53 @@ snac2nex -s /path/to/snac/storage -t /path/to/nex -u user1 -u user2
|
|||
Print version
|
||||
```
|
||||
|
||||
### Systemd
|
||||
|
||||
To use `snac2nex` as the `systemd` service, install binary to the canonical system location:
|
||||
|
||||
* `git clone https://codeberg.org/postscriptum/snac2nex.git && cd snac2nex`
|
||||
* `cargo build --release`
|
||||
* `sudo install target/release/snac2nex /usr/local/bin/snac2nex`
|
||||
* tip: now you may want to clean the `snac2nex` sources folder to free up disk space
|
||||
|
||||
Setup shared access permissions:
|
||||
|
||||
1. `useradd -m snac2nex` - create new user with home dir (for log files)
|
||||
2. `usermod -aG snac snac2nex` - replace `snac` with the `systemd` group for your [Snac](https://codeberg.org/grunfink/snac2) server
|
||||
* `chmod -R g+r /path/to/snac/storage` - give the group read permissions to Snac directories
|
||||
3. `usermod -aG nexy snac2nex` - replace `nexy` with the `systemd` group for your your Nex protocol server (e.g. [Nexy](https://github.com/YGGverse/nexy))
|
||||
* `chmod -R g+rw /path/to/nex` - give the group read/write permissions to Nex directories
|
||||
|
||||
Create new `systemd` configuration file `/etc/systemd/system/snac2nex.service`:
|
||||
``` snac2nex.service
|
||||
[Unit]
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=snac2nex
|
||||
Group=snac2nex
|
||||
# Uncomment if your Snac or Nex unit has ExecStartPre timeout option
|
||||
# ExecStartPre=/bin/sleep 15
|
||||
ExecStart=/usr/local/bin/snac2nex -s /path/to/snac/storage -t /path/to/nex -u user1 -u user2 -r 3600 -d
|
||||
StandardOutput=file:/home/snac2nex/debug.log
|
||||
StandardError=file:/home/snac2nex/error.log
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
* replace `ExecStart` arguments with your values, where:
|
||||
* `-s` - Snac `storage` location
|
||||
* `-u` - Snac `user`(s) to sync
|
||||
* `-t` - Nex server `target` location for public files
|
||||
* `-r` - is `rotate` every hour (`3600` seconds) to apply Snac instance updates (instead of export once)
|
||||
* `-d` - enable `daemon` mode, which disables some debug output, to prevent extra write operations
|
||||
* optionally, include `-a` (`attachment`) as `c` (`copy`) | `h` (`hard` link) | `s` (`soft` link)
|
||||
* `systemctl daemon-reload` - apply new `systemd` configuration
|
||||
* `systemctl enable snac2nex` - auto-start `snac2nex` sync on system boot
|
||||
* `systemctl start snac2nex` - start `snac2nex` sync now
|
||||
|
||||
## See also
|
||||
|
||||
* [Nexy](https://github.com/YGGverse/nexy) - Server for the Nex protocol, written in Rust
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue