R酱的发种姬: 搭建过程小记

Rhilip 2017-03-11 PM 4977℃ 1条

前注:由于该repo的更新及重构,rtinst脚本的重大变更,此处的安装步骤已经不能使用,仅供参考。

以前发布美剧0day都是本地ut下种发种,那时候就很羡慕类似WHU或者CMCT这样自建有Autoseed的站点。趁着自己还熟悉一些编程,就询问了群里另一位开发种机的dalao怎么建发种机。然后得到了这样的结果(扑。。

dalao回复

好吧,那就自己写吧(其实我原来想直接借用的QAQ)。然后就用Python写了个以transmission为PT工具的,专司发布剧集的发种机。
当然本文并不是讲这些故事,主要来梳理下怎么搭建这个Byrbt-Autoseed。(这是一个很复杂的过程QAQ


来先梳理下,pt工具是transmission,因为有相关python库而且好用(然而并不是,在实际写程序以及运行过程中遇到了很多问题);RSS订阅依赖flexget和irssi-autodl, flexget一则处理国内站点rss源方便,二来能填补irssi-autodl中未能订阅成功(以及不能发布proper的情况,估计是我没设置好的原因2333),irssi-autodl就更不用说了,外站必用;数据库管理用mysql,在写程序过程中也曾想过使用本地sqlite,然而实际考虑过一些问题后发现还是mysql好用,而且可以远程控制,方便后期维护,虽然有内存占用的问题存在,但是应该注意到seedbox在多数情况下不用考虑内存问题。

本文以在Vultr新开一台全新机(演示完已删除)为背景叙述。所用系统为Ubtuntu 14.04。开有IPv6支援,全程使用sudo提权或者使用root用户。

配置基本环境

使用putty登陆vps,依次安装transmission、flexget、rt+irssi-autodl、mysql、supervisord。

  1. 安转transmission(参考 Ubuntu 14.04 安装Transmission2.82
apt-get -y install software-properties-common
add-apt-repository -y ppa:transmissionbt/ppa
apt-get update
apt-get -y install transmission-cli transmission-common transmission-daemon

install_tr.jpg

安装好先停了服务就行,相关配置文件(settings.json)等基础环境全部安装好后在修改
service transmission-daemon stop

  1. 安转flexget
apt-get -y install python-pip
pip install flexget

install_flexget.jpg

  1. 安转rt+irssi-autodl(这里为了方便,使用一键脚本进行安装)

①获取脚本

cd 
cd temp
wget https://raw.githubusercontent.com/arakasi72/rtinst/master/rtinst.sh --no-check-certificate

②修改脚本内容
因为各大pt站禁rt 0.9.6,降级

apt-get –y install vim
vi rtinst.sh

修改以下字段并保存退出,

downgrade_rt.jpg

③运行脚本,填入rt密码,等待脚本执行完毕。注意脚本会提示创建新用户,并修改默认ssh端口。(如果在输入信息时出错请按住ctrl再按删除键)
bash rtinst.sh
setting_rtinst.jpg

安装完成,可以看到ssh端口已经被移到了23889了。另外脚本更改了ssh设置,禁止使用root用户登录。

rtinst_info.jpg

  1. 继续安装mysql(这一步并不是必须的,也可以使用远程mysql)
    apt-get -y install mysql-server

安转过程中会提示重复输入mysql的root密码。

  1. 安转supervisord(程序使用supervisord启动并保证能断线重启)
    pip install supervisor
  2. 脚本相关的依赖库
apt-get -y install python3-pip mediainfo
pip3 install pymysql transmissionrpc requests bs4 pymediainfo

至此脚本所有依赖安装过程完毕。我们来一一调教刚才安装的依赖~


transmission配置

参考 Ubuntu 14.04 安装Transmission2.82,建议将tr有关目录放在安装rt时候脚本自动创建的用户目录中(特别是watch目录)。完成后开启tr服务
service transmission-daemon start

mysql配置

mysql -uroot –p
1、创建用户及相关数据库(<...>请自己修改)

CREATE USER '<user>'@'%' IDENTIFIED BY '<password>';
CREATE DATABASE IF NOT EXISTS `<database>`;
GRANT ALL PRIVILEGES ON `<database>`.* TO '<user>'@'%';

creat_user.jpg

2、创建表格
USE <database>;
复制 sql/table_only.sql 中的内容并执行,完成后退出即可。(你也可以导入TV-series.sql 中的相关剧集信息)

creat_table.jpg

3、修改数据库远程访问权限
vi /etc/mysql/my.cnf

remote_to_db.jpg

找到并注释掉该行,并保存退出
# bind-address =127.0.0.1

获取Autoseed并配置

git clone https://github.com/Rhilip/Byrbt-Autoseed.git
cd Byrbt-Autoseed
cp settings.example.json settings.json
mv web-part/ <web_loc>;       # web_loc一般为/var/www,(具体见nginx设置)
vi settings.json

填写以下信息

setting_autoseed.jpg

注:byr_cookies请开一个隐身窗口获取,防止平时误退出导致cookies失效;

配置supervisord

更多参见 “使用 supervisor 管理进程

  1. 创建默认模板
echo_supervisord_conf > /etc/supervisord.conf # 创建默认配置文件
supervisord -c /etc/supervisord.conf #启动supervisord.conf
mkdir /var/log/autoseed # 创建日志文件夹
mkdir /etc/supervisord # 创建supervisord配置文件夹

编辑/etc/supervisord.conf,直接拉到最后,修改原本被注释掉的[include]字段为

[include]
file= /etc/supervisord/*.conf
  1. 创建autoseed.conf
cd /etc/supervisord
vi autoseed.conf

参考实例

[program:autoseed]
directory = /home/rhilip/Byrbt-Autoseed ; 程序的启动目录
command = python3 autoseed.py ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = root ; 用哪个用户启动
; stdout 日志文件
stdout_logfile = /var/log/autoseed/out.log
stdout_logfile_maxbytes = 10MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 5 ; stdout 日志文件备份数
; sterr 错误日志文件
stderr_logfile = /var/log/autoseed/err.log
stderr_logfile_maxbytes = 10MB
stderr_logfile_backups = 5
  1. 启动
    supervisord -c /etc/supervisord.conf

如果无误的话,可以用 supervisorctl -c /etc/supervisord.conf 看到以下信息

supervisorctl.jpg

至此基本完成。
关于flexget、irssi-autodl、nginx的部分就不在此文叙述。
数据库也可以考虑使用本地软件管理,也不多说了。

非特殊说明,本博所有文章均为博主原创。

评论啦~



唉呀 ~ 仅有一条评论


  1. ZCH
    ZCH

    请问站长什么专业?本硕?

    回复 2018-07-09 14:37