deluge/trac_wiki_export/wiki_dir/UserGuide%2FService%2FUpstart
2024-07-06 16:22:30 +01:00

153 lines
5.4 KiB
Plaintext

= Ubuntu Upstart Job =
'''This page only applies to Ubuntu 11.04 Natty up to 14.10 Utopic, for newer Ubuntu distributions see: [wiki:UserGuide/Service/systemd systemd].'''
[[PageOutline(2-10,Ubuntu Upstart Job)]]
Firstly ensure Deluge daemon and Web UI are installed:
{{{
sudo apt-get install deluged deluge-web
}}}
== User Management ==
It is best to run Deluge upstart scripts with a specific user and group. You can create one using the following command:
{{{
sudo adduser --system --group --home /var/lib/deluge deluge
}}}
* This creates a new system user and group named `deluge` with no login access and home directory: `/var/lib/deluge`
Add any users you wish to be able to easily manage or access files downloaded through Deluge to the group deluge will run as, for example:
{{{
sudo adduser <username> deluge
}}}
== Deluge Daemon (deluged) Job ==
Create the file `/etc/init/deluged.conf` with the following code and set `uid` and `gid` to the user and group you wish to run `deluged` as:
''Note: 11.04 Natty users replace `static-network-up` with `stopped networking`''
{{{
# deluged - Deluge daemon
#
# The daemon component of Deluge BitTorrent client. Deluge UI clients
# connect to this daemon via DelugeRPC protocol.
description "Deluge daemon"
author "Deluge Team"
start on filesystem and static-network-up
stop on runlevel [016]
respawn
respawn limit 5 30
env uid=deluge
env gid=deluge
env umask=007
exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/deluged -- -d
}}}
* You may wish to modify the above `umask` as it applies to any files downloaded by deluged.
* 007 grants full access to the user and members of the group deluged is running as (in this case deluge) and prevents access from all other accounts.
* 022 grants full access to the user deluged is running as and only read access to other accounts.
* 000 grants full access to all accounts.
Refer to [http://en.wikipedia.org/wiki/Umask#Octal_umasks Wikipedia] for details of possible values and their effects. Deluged must be stopped and started instead of just restarted after changes. If you enable logging, as described later in this page, the umasks specified here also affect the permissions of newly created logs.
== Deluge Web UI (deluge-web) Job ==
Create the file `/etc/init/deluge-web.conf` with the following code and set `uid` and `gid` as required:'''
{{{
# deluge-web - Deluge Web UI
#
# The Web UI component of Deluge BitTorrent client, connects to deluged and
# provides a web application interface for users. Default url: http://localhost:8112
description "Deluge Web UI"
author "Deluge Team"
start on started deluged
stop on stopping deluged
respawn
respawn limit 5 30
env uid=deluge
env gid=deluge
env umask=027
exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/deluge-web
}}}
''umask `027` grants full access to `uid`, read access to `gid` and prevents access from all other accounts. This should only affect the permissions of plugins installed through the Web UI and, if enabled, logs. Group permissions are restricted to read-only to prevent compromised member accounts injecting malicious code into plugins or modifying the logs.''
== Migration from init.d script ==
If you followed the old guide to create an init script you need to remove them:
{{{
sudo /etc/init.d/deluge-daemon stop
sudo rm /etc/init.d/deluge-daemon
sudo update-rc.d deluge-daemon remove
}}}
== Starting (and stopping) Upstart Scripts ==
=== Deluge Daemon ===
{{{
sudo start deluged
}}}
{{{
sudo stop deluged
}}}
=== Web UI ===
Although the Web UI will start/stop automatically when deluged starts/stops it can be manually controlled with:
{{{
sudo start deluge-web
}}}
{{{
sudo stop deluge-web
}}}
''Note: To prevent the web UI starting automatically comment out (# prefix) the '`start on`' line in `deluge-web.conf`.''
== Logging ==
Create a structure for Deluge to log to and give the user that Deluge is running as (in this case `deluge`) full access to that directory:
{{{
sudo mkdir -p /var/log/deluge
sudo chown -R deluge:deluge /var/log/deluge
sudo chmod -R 750 /var/log/deluge
}}}
* Note: The above commands affect the log directory and all files within it, combined with the umask specified in the upstart jobs these affect the permissions new logs are created with.
* 750 grants full access to the deluge user, only recurse tree and read access to members of the deluge group and prevents access from all other accounts. [http://en.wikipedia.org/wiki/Chmod#Octal_numbers Chmod]
Edit the upstart job confs like so:
{{{
exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/deluged -- -d -l /var/log/deluge/daemon.log -L warning
}}}
{{{
exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/deluge-web -- -l /var/log/deluge/web.log -L warning
}}}
* Refer to the [wiki:Faq#EnableDelugeLogging FAQ] for possible log-levels.
Restart the daemon:
{{{
sudo restart deluged
}}}
Create `/etc/logrotate.d/deluge` with the following code to rotate the logs:
{{{
/var/log/deluge/*.log {
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
initctl restart deluged >/dev/null 2>&1 || true
initctl restart deluge-web >/dev/null 2>&1 || true
endscript
}
}}}