на платформе Gentoo
Не так давно, меня начал доставать мой низкий рейтинг на трекерах. Времени исправлять ситуацию нет, но информация иной раз бывает очень нужна ;)
Дома у меня стоит сервер Gentoo с ежемесячным остатком трафика, вот я и решил исправить положение.
Схема у нас будет такая: самописный демон будет запускать консольный клиент rtorrent, который, в свою очередь будет через XMLRPC работать с SCGI гейтом, за счёт чего у нас будет Web-интерфейс управления нашими торрентами. Сами торренты будем забирать с сервера по средствам FTP.
[показать]
В качестве гейта я выбрал lighttpd, по 3м причинам: легко настраивается, мало ест памяти, легче спрятать в интрасеть.
Кстати сервер Lighttpd мне очень понравился. Лёгкий, оптимизированный, функциональный, разве что не совсем безопастный. В этом сервере я нашёл все те положительные качества, которые когда-то нашёл в Gentoo.
Установка необходимого ПО.
Зададим необходимые USE-флаги(для этой операции в системе должен уже быть порт gentoolkit):
# euse -E curl libwww xmlrpc sqlite php
# euse -D minimal
Теперь установим необходимое:
# emerge -avn lighttpd rtorrent dtach xmlrpc-c subversion vsftpd
Настройка lighttpd
# vim /etc/lighttpd/lighttpd.conf
Найдите там секцию server.modules и добавте в неё строчку:
code:
"mod_scgi",
code:
scgi.server = (
"/RPC2" = > (( "host" = > "127.0.0.1", "port" = > 5000, "check-local" = > "disable" )) )
code:
depend() { use net.* } start() { ebegin "Starting rtorrent" start-stop-daemon --start --chuid $USER \ --env TERM="xterm" \ --env HOME="/home/$USER" \ --exec /usr/bin/dtach -- -n $SOCKET /usr/bin/rtorrent eend $? } stop() { ebegin "Stopping rtorrent" start-stop-daemon --stop --signal 2 --name rtorrent eend $? }
code:
#Пользователь от которого будет запускаться rtorrent. От Root'а лучше не запускать. USER="sb0y" # Сокет rtorrent'а. SOCKET="/tmp/rtorrent.dtach"
[показать]code:
// Текущая ссылка на wtorrent define( 'URL', 'http://192.168.0.1:81' ); define( 'BASE', 'http://192.168.0.1:81' ); // Информация для соединения с rTorrent. Логин и пароль можно не изменять, если вы ранее не настроили авторизацию в rTorrent. define( 'RT_HOST', 'localhost'); define( 'RT_PORT', 81); define( 'RT_DIR', 'RPC2/'); define( 'RT_AUTH', false); define( 'RT_USER', 'my_user'); define( 'RT_PASSWD', 'my_password'); // физическое место положение wtorrent на сервере define( 'DIR_EXEC', '/var/www/localhost/htdocs/');
code:
irmessage_enable=YES chown_uploads=NO idle_session_timeout=900 data_connection_timeout=120 ascii_upload_enable=NO ascii_download_enable=NO chroot_list_enable=YES listen=YES ls_recurse_enable=NO anonymous_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO local_enable=NO write_enable=NO
code:
[...] /mnt/hdc1/torrents /home/ftp/torrents none ro,bind 0 0
Позднее ещё опробую для этой задачи NFS и если результат меня удивит дополню статью. На момент написания этого текста мне казалось, что для того чтобы тягать с сервера фильмы по гигабайту больше всего подходит FTP.