mirror of
https://github.com/thomiceli/opengist.git
synced 2024-12-23 13:02:39 +00:00
e4bbd756f0
Add documention how to use systemd without root access
92 lines
2.1 KiB
Markdown
92 lines
2.1 KiB
Markdown
# Run with Systemd
|
|
|
|
For non-Docker users, you could run Opengist as a systemd service.
|
|
|
|
## As root
|
|
On Unix distributions with systemd, place the Opengist binary like:
|
|
|
|
```shell
|
|
sudo cp opengist /usr/local/bin
|
|
sudo mkdir -p /var/lib/opengist
|
|
sudo cp config.yml /etc/opengist
|
|
```
|
|
|
|
Edit the Opengist home directory configuration in `/etc/opengist/config.yml` like:
|
|
```shell
|
|
opengist-home: /var/lib/opengist
|
|
```
|
|
|
|
Create a new user to run Opengist:
|
|
```shell
|
|
sudo useradd --system opengist
|
|
sudo mkdir -p /var/lib/opengist
|
|
sudo chown -R opengist:opengist /var/lib/opengist
|
|
```
|
|
|
|
Then create a service file at `/etc/systemd/system/opengist.service`:
|
|
```ini
|
|
[Unit]
|
|
Description=opengist Server
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=opengist
|
|
Group=opengist
|
|
ExecStart=opengist --config /etc/opengist/config.yml
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
Finally, start the service:
|
|
```shell
|
|
systemctl daemon-reload
|
|
systemctl enable --now opengist
|
|
systemctl status opengist
|
|
```
|
|
|
|
----
|
|
|
|
## As a normal user
|
|
**NOTE: This was tested on Ubuntu 20.04 and newer. For other distros, please check the respective documentation**
|
|
|
|
#### For the purpose of this documentation, we will assume that:
|
|
- You've followed the instructions on how to run opengist [from source](https://github.com/thomiceli/opengist?tab=readme-ov-file#from-source)
|
|
- Your shell user is named `pastebin`
|
|
- All commands are being executed as the `pastebin` user
|
|
|
|
_If none of the above is true, then adapt the commands and paths to fit your needs._
|
|
|
|
Enable lingering for the user:
|
|
```shell
|
|
loginctl enable-linger
|
|
```
|
|
|
|
Create the user systemd folder:
|
|
```
|
|
mkdir -p /home/pastebin/.config/systemd/user
|
|
```
|
|
|
|
Then create a service file at `/home/pastebin/.config/systemd/user/opengist.service`:
|
|
```ini
|
|
[Unit]
|
|
Description=opengist Server
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=/home/pastebin/opengist/opengist --config /home/pastebin/opengist/config.yml
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=default.target
|
|
```
|
|
|
|
Finally, start the service:
|
|
```shell
|
|
systemctl --user daemon-reload
|
|
systemctl --user enable --now opengist
|
|
systemctl --user status opengist
|
|
```
|