Домашняя торрент-качалка на базе Ubuntu server

Прошел год, как у меня появился свой домашний сервер для закачки всякой фигни из интернета, и теперь он наконец-то полностью настроен, за исключением некоторых некритичных мелочей

Под катом сама настройка Ubuntu Server 9.10, transmission-daemon, btpd и samba для файлопомойки.

Для начала ставим на комп операционку. Я выбрал убунту, так как она достаточна стабильна для моих нужд, имеет современный софт в своих репозиториях, а главное, самые последние версии типа того же трансмишна можно легко получить через сторонние репозитории проекта launchpad.

В общем, ставим убунту. Системный винт разбиваем на три раздела:

/dev/sda1   *           1           5       40131   83  Linux # раздел /boot 40 Мб
/dev/sda2               6         255     2008125   82  Linux своп / Solaris
/dev/sda3             256        4865    37029825   83  Linux # корень / - все остальное пространство

Этот винт не подразумевает хранение пользовательского контента на нем, так что 40 гигабайтов хватит с запасом. Можно было бы поставить и на флэшку, отключив при этом своп и логи, но мне пока хватает двух других винтов.

Я подключал дополнительные жесткие уже после установки системы, правя fstab (точки монтирования, естественно, уже должны быть созданы):

#storage 1TB
UUID=2f039c52-40f9-403c-81d6-d98dc401e47c /mnt/storage    ext3     relatime        0       0
#music 640GB
UUID=af557066-199e-4a49-bd39-79eefd1426ff /mnt/music      ext3     relatime        0       0

UUID винта можно посмотреть при помощи команды blkid, запущенной от рута.

В /etc/apt/sources.list вписываем репы launchpad
deb http://ppa.launchpad.net/transmissionbt/ubuntu karmic main
deb-src http://ppa.launchpad.net/transmissionbt/ubuntu karmic main


Ставим btpd, transmission-daemon, samba, btpd-webui.
sudo apt-get update
sudo apt-get install btpd transmission-daemon samba

sudo apt-get install subversion python2.5 python-twisted-bin python-twisted-core python-twisted-web
mkdir -p ~/temp/btpdgui && cd ~/temp/btpdgui
svn checkout http://btpd-webui.googlecode.com/svn/trunk/ btpd-webui-read-only
cd btpd-webui-read-only
python setup.py build && sudo python setup.py install


Добавляем группу btpd
sudo addgroup btpd


Добавляем себя в группы btpd и debian-transmission (внимание, во всех примерах мои настройки, в т.ч. и имя пользователя, меняйте на свои)
sudo usermod -aG btpd, debian-transmission daniel


Создаем каталоги, куда будет литься файло и задаем им права
sudo mkdir /mnt/storage/torrents
sudo mkdir /mnt/storage/torrents/btpdcontent
sudo mkdir /mnt/storage/torrents/tmcontent
sudo chown btpd:btpd /mnt/storage/torrents/btpdcontent
sudo chown debian-transmission: debian-transmission /mnt/storage/torrents/tmcontent
sudo chmod 775 /mnt/storage/torrents/tmcontent
sudo chmod 775 /mnt/storage/torrents/btpdcontent


Создаем несколько симлинков для btpd и webui
sudo rm -rf /var/lib/btpd/files && sudo ln -s /mnt/storage/torrents/btpdcontent /var/lib/btpd/files && sudo chmod -R 775 /var/lib/btpd && sudo chown btpd:btpd -R /var/lib/btpd

ln -s /var/lib/btpd ~/.btpd
sudo ln -s /var/lib/btpd /root/.btpd


Правим конфиги торрент-клиентов.
btpd, файл /etc/default/btpd, задаем максимальные скорости скачивания и отдачи;
transmission-daemon, файл /etc/transmission-daemon/settings.json (прежде чем его править, нужно остановить демон);
тут можно посмотреть пример моего конфига. Главные опции:

    "download-dir": "\/mnt\/storage\/torrents\/tmcontent\/", 
    "rpc-enabled": true, # позволит использовать удаленное управление демоном
    "rpc-password": "td", 
    "rpc-port": 9091, 
    "rpc-username": "td", 
    "umask": 2           # важная опция, с ней демон будет создавать файлы с правами 664 и каталоги с правами 775, т.е. для группы права на запись будут, по умолчанию маска стоит 022.


Правим /etc/init.d/btpd, чтобы он тоже создавал файло с маской 002
case "$1" in
  start)
    log_begin_msg "Starting the Bittorrent Protocol Daemon..."
        start-stop-daemon --start --quiet --oknodo --name $NAME --user $USER \
        --chuid $USER -g $USER --umask 002 --exec $DAEMON -- $DAEMON_OPTS
    log_end_msg $?
        ;;


Настраиваем самбу
sudo smbpasswd -a daniel
sudo smbpasswd -e daniel

Пример конфига тут
Некоторые пояснения

[storage secure]
	comment = storage RW
	path = /mnt/storage
	valid users = daniel, @btpd, @debian-transmission  
	read list = daniel, @btpd, @debian-transmission
	write list = daniel, @btpd, @debian-transmission
	read only = No
        hosts deny = ALL
        hosts allow = 192.168.0.0/255.255.255.0
#мы заблаговременно добавили себя в группы торрент-демонов, 
#таким образом войдя в систему через ssh или по самбе, 
#зарегистрировавшись, имеем полные права на изменение файлов.
# если основная система на виндах, то пользователь, 
#лезущий на ресурс, должен иметь то же имя пользователя и пароль,
#что и на самбе, тогда его пустит без спроса, 
#если же пользователь отличается, затребует пароль.


Дальше или перезапускаем полностью сервак, или рестартуем сервисы, и запускаем sudo btpd-webui start

Теперь по ip-адресу или samba имени на порте 12321 будет висеть веб-морда btpd.
Для трансмишна предлагаю использовать transmission-remote-gui
Он есть и для винды, и для линукса. В его настройках нужно указать rpc-username и rpc-password из settings.json, ip-адрес сервера и порт (по умолчанию 9091).

Фаерволл не настраивал, ибо есть железный в роутере.
  • +5
  • 31 января 2010, 01:19
  • Skriva

Комментарии (10)

RSS свернуть / развернуть
+
0
а что,
хороший мануал
Я например пользуюсь vuze
Просто кидаю .torrent файлы в папочку и он их подхватывает
а смотрю через web интерфейс
Но transmission remote поудобнее будет
avatar

Sergei_T

  • 31 января 2010, 09:03
+
0
Отличная статья. Я пользуюсь для ночных закачек консольным клиентом rtorrent, запускаемым в screen, но этот метод явно удобнее, надо будет перестроиться. А железо то самое, на Intel Atom? Интересно было бы посмотреть на фотку, если так. Сколько оно у тебя электроэнергии потребляет?
avatar

yababay

  • 31 января 2010, 09:38
+
0
Не, у меня дома качает на Intel Core ноутбуке
Насчет письма — скачал — Может выйдешь в ICQ?
avatar

Sergei_T

  • 31 января 2010, 09:41
+
0
У меня ICQ-клиент QutIM. У него недостаток: статусы не показывает. Не знаю кто реально в сети, поэтому аськой пользуюсь неохотно. А другие клиенты что-то не получается запустить под Linux: или версии протокола устарели или вообще «шляпа», как ты говоришь.
avatar

yababay

  • 31 января 2010, 09:57
+
0
Хорошо работает pidgin — очень хорошо
avatar

Sergei_T

  • 31 января 2010, 10:13
+
0
Да, железо на атоме, чуть позже выложу фотки внутренностей отдельной статьей.
А рторрентом я раньше пользовался, чтобы вышло примерно так же, как и с btpd, т.е. с веб-интерфейсом, нужно столько всего понаставить и настроить, что я забил на это.

Пользуясь случаем, выражаю благодарность Sergei_T за вовремя предоставленный нетбук, где я смог подтвердить появившуюся мысль
avatar

Skriva

  • 31 января 2010, 16:23
+
0
Xороший мануал !!!
avatar

Markony

  • 31 января 2010, 10:14
+
0
QutIM — И у меня стоит — ужас
avatar

FREExLOADER

  • 31 января 2010, 10:16
+
0
Как видно из статьи, для того, чтобы демоны создавали файлы с нужными мне правами, были применены разные способы.
Оказывается, transmission-daemon уже имеет нужную настройку в своем файле конфигов, а для btpd пришлось смотреть ман на программу start-stop-daemon.
avatar

Skriva

  • 31 января 2010, 16:26
+
0
start-stop-daemon подходит отлично для запуска в chroot jail
Запуск Java и Apache Felix в chroot jail окружении в Debian Lenny
avatar

Sergei_T

  • 31 января 2010, 16:31

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.