AutoBangumi + qbit + plex搭建优雅的追番服务

ACG
1.3k 词

前言

最近很迷少女乐队,之前沉迷了半年的邦邦和mygo,最近又被Girls Band Cry所捕获,甚至为此打破了自己不看未完结动画的原则。

仁菜是复杂的矛盾集合体,但只是不想违背自己的本心而已,实在很可爱。

言归正传,要优雅地追动画,在盗版网站是很没意思的,体验很差。所以打算自己搭一个。

主要架构很简单:AutoBangumi + Qbit + Plex。

AB通过解析RSS将种子交给qbit下载,然后对下载完的文件做刮削,再交给Plex作为流媒体平台。

主要参考:

AutoBangumi官方文档,有对大部分配置参数的详细说明

官方搭建教程

一切环境的根本:docker

关键是docker-compose.yml的配置文件:

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
version: '3.9'
services:

ab:
image: estrellaxd/auto_bangumi:latest
container_name: ab
ports:
- 7892:7892
depends_on:
- qb
environment:
- PUID=1000
- PGID=1000
volumes:
- ./ab/config:/app/config #不要动
- ./ab/data:/app/data #不要动
restart: unless-stopped
dns: #可选,指定 dns 服务器
- 223.5.5.5
- 119.29.29.29
- "2400:3200::1"
- "2402:4e00::"

qb:
image: superng6/qbittorrentee:latest
deploy:
resources:
limits:
memory: 600M
container_name: qb
ports:
- 8989:8989 #若需修改,两者应与下方的 QB_WEBUI_PORT 完全一致
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
- WEBUIPORT=8989 #与ports的端口配置应一致
volumes:
- ./qb:/config #qb配置文件,不要动
- ./bangumi:/bangumi #qb下载目录,自行修改,注意大小写
restart: no
dns: #可选,指定 dns 服务器
- 223.5.5.5
- 119.29.29.29
- "2400:3200::1"
- "2402:4e00::"

plex:
image: linuxserver/plex
container_name: plex
ports:
- 32400:32400
- 1900:1900/udp
- 3005:3005
- 5353:5353/udp
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
- VERSION=docker
- PLEX_CLAIM=******************* #optional
volumes:
- ./plex:/config
- ./bangumi:/media/Bangumi
restart: unless-stopped

注意:

  1. qbit的内存资源限制是因为服务器内存太少做的,如果性能无忧可以去掉
  2. plex的PLEX_CLAIM很重要,如果不加这个参数会导致plex把你的服务认为是客户端,具体值获取是需要先去官网注册,然后登录(是为了存cookie),再访问这个链接即可得到。
  3. qbit对应的目录需要有下载权限,需要给对应目录./bangumi赋予权限:chmod 777 ./bangumi

然后就是基本的docker使用了,拉取镜像并跑起容器:

1
docker compose up -d

然后看下运行状况:

1
docker ps

AutoBangumi和Qbit都有网页图形化界面可以操作,AB默认账户密码是:admin和adminadmin。

但Qbit是随机生成的密码,需要用下面的命令从日志查看:

1
docker logs qb

注意每次重启docker都会更新,所以最好不要经常重启,因为AB对应的配置也要改。

标准步骤之外

AutoBangumi

添加RSS有两种选项:collect和subscribe,前者会把RSS中现有的全部下载,后者会监听RSS更新。

番组下载选项里有关番剧补全参数,也可以将之前更新的集数下载,但我试了下还是用的mikani.me那个被墙的域名,所以需要挂代理才能下,不如手动下下来方便。

另外:手动下的要想让AB刮削,只需要在qb里选择类别为bangumi,再移动到指定目录即可。

Qbit

对于性能堪忧的小主机,Qbit有个有点坑的默认选项,就是磁盘缓存

image-20240518200434525

默认是512M,但我的主机只有1G内存,除去操作系统占用之后,已经不到这个数了。所以在内存占用到达系统限额时,系统会将Qbit进程kill以避免崩溃,而Docker默认会在异常终止后重启Container,导致Qbit这个容器无限重启,甚至SSH都连不上。我试了几次,一直盯着htop的资源管理器才发现这个问题。

解决也很简单,直接改小即可。还有一种办法就是将硬盘分配给内存,让操作系统将部分内存占用移到这块硬盘区域中进行,Linux中一般使用swap分配空间实现,具体参加这篇博文。(另外,其实效果并不好,系统调度时仍然会在大部分操作时使用内存而不是swap)

Plex

更换账户时,记得清除网页缓存。

Others

重启时莫名其妙把系统搞坏了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(anon):253: 只读文件系统: /tmp/p10k-instant-prompt-output-root-26831
mkdir: 无法创建目录"/root/.cache/oh-my-zsh/completions": 只读文件系统
rm: 无法删除'/root/.zcompdump-test-5.4.2': 只读文件系统
(anon):13: 只读文件系统: /tmp/gitstatus.POWERLEVEL9K.0.26831.1716098034.1.lock

[ERROR]: gitstatus failed to initialize.


Add the following parameter to ~/.zshrc for extra diagnostics on error:

GITSTATUS_LOG_LEVEL=DEBUG

Restart Zsh to retry gitstatus initialization:

exec zsh
zsh: locking failed for /root/.zsh_history: 只读文件系统: reading anyway

再重启始终显示这个报错,docker也跑不了,甚至DNS都解析不了,配置也都是Read Only修改不了。

查了半天用kill对应挂载目录的进程解决了:

1
df -h

kill进程:

1
fuser -mv -k /dev/vda1

好吧,结果还是没解决。。

update:万万没想到,最后还是解决了,原来是apt报错的问题而已。

留言