Transmission结合File browser搭建小型BT云站

通过Transmission提供种子文件的上传、下载和做种,File browser 作为在线文件浏览器提供部分格式视频(mp4、flv)在线收看和文件下载功能。
- 操作系统:Ubuntu 18.04 LTS
Transmission部署
安装下载
可以直接通过apt安装1
2sudo apt-get update
sudo apt-get install transmission-daemon配置
Transmission的配置文件默认放在/etc/transmission-daemon/setting.json。在安装完毕后,Transmission会默认启动,修改配置文件之前先通过下面的命令停止服务:通过Vim打开setting.json配置文件1
sudo systemctl stop transmission-daemon
按需要修改完成后就可以通过以下命令启动服务。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71{
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "0.0.0.0", #开启IPV4地址绑定
"bind-address-ipv6": "::", #开启IPV6地址绑定
"blocklist-enabled": false, #启用黑名单
"blocklist-url": "http://www.example.com/blocklist", #黑名单地址
"cache-size-mb": 4,
"dht-enabled": false, #DTH启用,这里我们要关闭
"download-dir": "/home/transmission-daemon/downloads", #默认下载目录
"download-limit": 100,
"download-limit-enabled": 0,
"download-queue-enabled": true, #启用下载队列
"download-queue-size": 40,
"encryption": 2, #修改为2
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/var/lib/transmission-daemon/Downloads",
"incomplete-dir-enabled": false,
"lpd-enabled": false,
"max-peers-global": 2000,
"message-level": 1,
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
"peer-limit-global": 2000,
"peer-limit-per-torrent": 500,
"peer-port": 51413, #端口
"peer-port-random-high": 65535, #端口范围最高值
"peer-port-random-low": 49152, #端口范围最低值
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": true,
"port-forwarding-enabled": false,
"preallocation": 1,
"prefetch-enabled": 1,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true, #是否启用RPC,设置为True
"rpc-password": "", #密码,编辑的时候输入明文密码,保持之后,自动变为加密的
"rpc-port": 12333,
"rpc-url": "/transmission/",
"rpc-username": "username", #用户名
"rpc-whitelist": "", #白名单IP,多个IP用‘,'分隔,可以直接修改成0.0.0.或者*
"rpc-whitelist-enabled": true, #是否启用白名单,如果需要可以修改为true
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"seed-queue-enabled": false,
"seed-queue-size": 10,
"speed-limit-down": 300,
"speed-limit-down-enabled": false,
"speed-limit-up": 500,
"speed-limit-up-enabled": false,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 18,
"upload-limit": 100,
"upload-limit-enabled": 0,
"upload-slots-per-torrent": 14,
"utp-enabled": true
}启动后WebUI默认运行在9091端口,通过如下网址即可访问:1
sudo systemctl start transmission-daemon
1
http://<你的ip地址>:9091/transmission/web/
File browser部署
- Github:https://github.com/filebrowser/filebrowser
- Site:https://filebrowser.org/
安装下载
官网给出的安装脚本如下:部分机器可能会出现如下的错误提示:1
curl -fsSL https://filebrowser.org/get.sh | bash
可以通过手动访问https://raw.githubusercontent.com/filebrowser/get/master/get.sh的方式获取如下的脚本源码,手动创建get.sh脚本文件执行下载安装。1
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
脚本创建完成后通过1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#
# File Browser Installer Script
#
# GitHub: https://github.com/filebrowser/filebrowser
# Issues: https://github.com/filebrowser/filebrowser/issues
# Requires: bash, mv, rm, tr, type, grep, sed, curl/wget, tar (or unzip on OSX and Windows)
#
# This script installs File Browser to your path.
# Usage:
#
# $ curl -fsSL https://filebrowser.xyz/get.sh | bash
# or
# $ wget -qO- https://filebrowser.xyz/get.sh | bash
#
# In automated environments, you may want to run as root.
# If using curl, we recommend using the -fsSL flags.
#
# This should work on Mac, Linux, and BSD systems, and
# hopefully Windows with Cygwin. Please open an issue if
# you notice any bugs.
#
install_filemanager()
{
trap 'echo -e "Aborted, error $? in command: $BASH_COMMAND"; trap ERR; return 1' ERR
filemanager_os="unsupported"
filemanager_arch="unknown"
install_path="/usr/local/bin"
# Termux on Android has $PREFIX set which already ends with /usr
if [[ -n "$ANDROID_ROOT" && -n "$PREFIX" ]]; then
install_path="$PREFIX/bin"
fi
# Fall back to /usr/bin if necessary
if [[ ! -d $install_path ]]; then
install_path="/usr/bin"
fi
# Not every platform has or needs sudo (https://termux.com/linux.html)
((EUID)) && [[ -z "$ANDROID_ROOT" ]] && sudo_cmd="sudo"
#########################
# Which OS and version? #
#########################
filemanager_bin="filebrowser"
filemanager_dl_ext=".tar.gz"
# NOTE: `uname -m` is more accurate and universal than `arch`
# See https://en.wikipedia.org/wiki/Uname
unamem="$(uname -m)"
case $unamem in
*aarch64*)
filemanager_arch="arm64";;
*64*)
filemanager_arch="amd64";;
*86*)
filemanager_arch="386";;
*armv5*)
filemanager_arch="armv5";;
*armv6*)
filemanager_arch="armv6";;
*armv7*)
filemanager_arch="armv7";;
*)
echo "Aborted, unsupported or unknown architecture: $unamem"
return 2
;;
esac
unameu="$(tr '[:lower:]' '[:upper:]' <<<$(uname))"
if [[ $unameu == *DARWIN* ]]; then
filemanager_os="darwin"
elif [[ $unameu == *LINUX* ]]; then
filemanager_os="linux"
elif [[ $unameu == *FREEBSD* ]]; then
filemanager_os="freebsd"
elif [[ $unameu == *NETBSD* ]]; then
filemanager_os="netbsd"
elif [[ $unameu == *OPENBSD* ]]; then
filemanager_os="openbsd"
elif [[ $unameu == *WIN* || $unameu == MSYS* ]]; then
# Should catch cygwin
sudo_cmd=""
filemanager_os="windows"
filemanager_bin="filebrowser.exe"
filemanager_dl_ext=".zip"
else
echo "Aborted, unsupported or unknown OS: $uname"
return 6
fi
########################
# Download and extract #
########################
echo "Downloading File Browser for $filemanager_os/$filemanager_arch..."
if type -p curl >/dev/null 2>&1; then
net_getter="curl -fsSL"
elif type -p wget >/dev/null 2>&1; then
net_getter="wget -qO-"
else
echo "Aborted, could not find curl or wget"
return 7
fi
filemanager_file="${filemanager_os}-$filemanager_arch-filebrowser$filemanager_dl_ext"
filemanager_tag="$(${net_getter} https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')"
filemanager_url="https://github.com/filebrowser/filebrowser/releases/download/$filemanager_tag/$filemanager_file"
echo "$filemanager_url"
# Use $PREFIX for compatibility with Termux on Android
rm -rf "$PREFIX/tmp/$filemanager_file"
${net_getter} "$filemanager_url" > "$PREFIX/tmp/$filemanager_file"
echo "Extracting..."
case "$filemanager_file" in
*.zip) unzip -o "$PREFIX/tmp/$filemanager_file" "$filemanager_bin" -d "$PREFIX/tmp/" ;;
*.tar.gz) tar -xzf "$PREFIX/tmp/$filemanager_file" -C "$PREFIX/tmp/" "$filemanager_bin" ;;
esac
chmod +x "$PREFIX/tmp/$filemanager_bin"
echo "Putting filemanager in $install_path (may require password)"
$sudo_cmd mv "$PREFIX/tmp/$filemanager_bin" "$install_path/$filemanager_bin"
if setcap_cmd=$(PATH+=$PATH:/sbin type -p setcap); then
$sudo_cmd $setcap_cmd cap_net_bind_service=+ep "$install_path/$filemanager_bin"
fi
$sudo_cmd rm -- "$PREFIX/tmp/$filemanager_file"
if type -p $filemanager_bin >/dev/null 2>&1; then
echo "Successfully installed"
trap ERR
return 0
else
echo "Something went wrong, File Browser is not in your path"
trap ERR
return 1
fi
}
install_filemanager即可完成下载。1
bash get.sh
配置
如果是在根目录下完成的安装,该目录下会生成filebrowser.db文件,可通过如下方式进行相关配置:Transmission服务下载的文件默认存放在/var/lib/transmission-daemon/downloads下面,通过如下命令开启file browser服务,并将默认浏览目录指向transmission的下载文件:1
2
3
4
5
6
7
8
9
10#设置监听地址
filebrowser -d ~/filebrowser.db config set --address 0.0.0.0
#设置监听端口
filebrowser -d ~/filebrowser.db config set --port 8088
#设置语言环境
filebrowser -d ~/filebrowser.db config set --locale zh-cn
#设置日志位置
filebrowser -d ~/filebrowser.db config set --log /var/log/filebrowser.log
#添加一个用户,其中的root和password分别是用户名和密码,根据自己的需求更改
filebrowser -d ~/filebrowser.db users add root password --perm.admin通过访问对应端口服务,输入用户名密码即可进行文件浏览和下载等服务。1
filebrowser -r /var/lib/transmission-daemon/downloads -d ~/filebrowser.db
评论