mirror of
https://github.com/varbhat/exatorrent.git
synced 2021-09-19 22:57:02 +03:00
170 lines
4.1 KiB
Markdown
170 lines
4.1 KiB
Markdown
# Deploy Docs
|
|
This Documents some things on deployment of `exatorrent` .
|
|
|
|
# Run as Seperate User
|
|
Create new seperate user and group to run `exatorrent` . In this document , we assume that `exatorrent` is run as `exatorrent` user and `exatorrent` group but any name is fine . Run `exatorrent` as seperate user and group .
|
|
|
|
# Service
|
|
Using Services help to make sure that `exatorrent` will be running even after reboot and better logging by service Manager . Below are example Service files for `Runit` , `Systemd` , `Sysvinit` and `Openrc` . Modify them to suit your system .
|
|
|
|
## Runit
|
|
`run` file of `exatorrent` is as below .
|
|
|
|
```sh
|
|
#!/bin/sh
|
|
cd /path/to/directory
|
|
exec chpst -u exatorrent:exatorrent /path/to/exatorrent
|
|
```
|
|
|
|
## Systemd
|
|
Systemd unit file `exatorrent.service` is as follows :
|
|
|
|
```
|
|
[Unit]
|
|
Description=exatorrent
|
|
|
|
[Service]
|
|
Type=simple
|
|
Restart=always
|
|
RestartSec=5s
|
|
User=exatorrent
|
|
Group=exatorrent
|
|
WorkingDirectory=/path/to/directory
|
|
ExecStart=/path/to/exatorrent
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
## Sysvinit
|
|
Sysvinit script is as follows:
|
|
|
|
```sh
|
|
#!/bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: exatorrent
|
|
# Required-Start: $remote_fs $network
|
|
# Required-Stop: $remote_fs $network
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: starts exatorrent
|
|
# Description: exatorrent is torrent client
|
|
### END INIT INFO
|
|
|
|
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
|
NAME=exatorrent
|
|
USER=exatorrent
|
|
DESC="exatorrent"
|
|
DAEMON_PATH=/path/to/exatorrent/bin/dir
|
|
PIDFILE=/run/$NAME.pid
|
|
LOGFILE=/var/log/$NAME.log
|
|
TIMEOUT=30
|
|
SCRIPTNAME=/etc/init.d/$NAME
|
|
|
|
case "$1" in
|
|
start)
|
|
echo "Starting $DESC"
|
|
start-stop-daemon --start --background --oknodo --startas $DAEMON --chdir $DAEMON_PATH --chuid $USER --exec $DAEMON_PATH/$NAME --
|
|
;;
|
|
stop)
|
|
echo "Stoping $DESC"
|
|
start-stop-daemon --stop --quiet --oknodo --retry=0/10/TERM/5/KILL/5 --exec $DAEMON_PATH/$NAME
|
|
;;
|
|
status)
|
|
start-stop-daemon --status --exec $DAEMON_PATH/$NAME && exit_status=$? || exit_status=$?
|
|
case "$exit_status" in
|
|
0) echo "The '$DESC' is running." ;;
|
|
*) echo "The '$DESC' is not running." ;;
|
|
esac
|
|
;;
|
|
restart)
|
|
echo "Restarting $DESC: "
|
|
sh $0 stop
|
|
sleep 20
|
|
mv --backup=numbered $LOGFILE $LOGFILE.1
|
|
sh $0 start
|
|
;;
|
|
esac
|
|
exit 0
|
|
```
|
|
|
|
## openrc
|
|
|
|
Openrc `run` file is as follows :
|
|
|
|
```sh
|
|
#!/sbin/openrc-run
|
|
description="exatorrent"
|
|
|
|
depend() {
|
|
need net
|
|
after firewall
|
|
}
|
|
|
|
start() {
|
|
ebegin "Starting exatorrent"
|
|
start-stop-daemon --start --background --chdir /path/to/exatorrent/dir --exec /path/to/exatorrent/dir/exatorrent --
|
|
eend $?
|
|
}
|
|
|
|
stop() {
|
|
local rv=0
|
|
ebegin "Stopping exatorrent"
|
|
start-stop-daemon --stop --quiet --oknodo --retry=0/10/TERM/5/KILL/5 --exec /path/to/exatorrent/dir/exatorrent
|
|
eend $?
|
|
}
|
|
```
|
|
|
|
|
|
|
|
# Reverse Proxy
|
|
We recommend running `exatorrent` behind reverse proxy . Below are example configurations of Nginx , Haproxy and Caddy made to reverse proxy `exatorrent` . Please don't put Basic Auth or any kind of custom auth / request modification system as Authentication is handled by `exatorrent` itself . `/api/socket` is WebSocket endpoint and Reverse Proxying server must not hinder it .
|
|
|
|
## Nginx
|
|
|
|
```Nginx
|
|
server {
|
|
listen 443 ssl http2;
|
|
listen [::]:443 ssl http2;
|
|
ssl_certificate /path/to/tls/tls.crt;
|
|
ssl_certificate_key /path/to/tls/tls.key;
|
|
|
|
server_name the.domain.tld;
|
|
|
|
location / {
|
|
proxy_pass http://localhost:5000;
|
|
# proxy_pass http://unix:/path/to/exatorrent/unixsocket;
|
|
}
|
|
|
|
location /api/socket {
|
|
proxy_pass http://localhost:5000/api/socket;
|
|
# proxy_pass http://unix:/path/to/exatorrent/unixsocket:/api/socket;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "Upgrade";
|
|
proxy_set_header Host $host;
|
|
}
|
|
|
|
}
|
|
```
|
|
|
|
## Haproxy
|
|
|
|
```HAProxy
|
|
frontend proxy
|
|
#bind *:80
|
|
bind *:443 ssl crt /path/to/tls/cert.pem
|
|
default_backend exatorrent
|
|
|
|
backend exatorrent
|
|
server exatorrent localhost:5000
|
|
```
|
|
|
|
## Caddy
|
|
|
|
```
|
|
https://the.domain.tld {
|
|
reverse_proxy * localhost:5000
|
|
}
|
|
```
|