找不到稳定的 DPlayer 弹幕后端
,所以自建。README 推荐 Docker
部署,但 docker-compose
官方未提供 arm 二进制文件,需要安装诸多依赖后通过 pip 编译,整个过程历时 30 分钟,失去了 Docker 的优势之一,快速部署。然而这都不重要,关键是运行后系统负载上升到 0.2,要知道之前还跑着其他数个服务,平均负载一直是 0,所以决定本地安装。
演示效果
外部依赖
其实 node
项目无非三步走,git clone
,npm install
,node index.js
。在此之前查看下 config.js
和 docker-compose.yml
, 发现项目使用了 redis
和 mongodb
,于是装。
apt -y install curl git nodejs redis-server
# 以下代码仅针对 Ubuntu bionic arm64
function gen_url() {
echo "https://repo.mongodb.org/apt/ubuntu/dists/bionic/mongodb-org/4.2/multiverse/binary-arm64/${1}"
}
part_names=(-mongos_ -server_ -shell_ -tools_ _)
for part_name in ${part_names[@]};
do
deb="mongodb-org${part_name}4.2.3_arm64.deb"
curl -kLO "$(gen_url $deb)"
dpkg -i $deb
rm -f $deb
done
内部依赖
export DPLAYER_SAVE_PATH=/usr/local/etc/dplayer
mkdir -p $DPLAYER_SAVE_PATH
git clone https://github.com/MoePlayer/DPlayer-node.git $DPLAYER_SAVE_PATH
cd $DPLAYER_SAVE_PATH
npm install
npm audit fix
开机自启
cat >/etc/systemd/system/dplayer.service <<EOF
[Unit]
Description=Dplayer Service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
PIDFile=/run/dplayer.pid
WorkingDirectory=$DPLAYER_SAVE_PATH
ExecStart=$(which node) $DPLAYER_SAVE_PATH/index.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
services=(redis mongod dplayer)
for service in ${services[@]};
do
systemctl start $service
systemctl enable $service
done
Web Server 反代
location /danmaku/ {
proxy_redirect off;
proxy_http_version 1.1;
proxy_pass http://localhost:1207/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
现在就可以通过 https://domain.com/danmaku/
使用了。
数据备份
# 导出
mongoexport -d danmaku -c dans -o /home/danmaku_backup.json
# 导入
mongoimport -d danmaku -c dans --file /home/danmaku_backup.json
参考资料
如有问题请在下方留言,文章转载请注明出处,详细交流请加下方群组!请大佬不要屏蔽文中广告,因为它将帮我分担服务器开支,如果能帮忙点击我将万分感谢。
博主你好,之前主题支持Dplayer,现在换了这个主题,好像默认不支持,请问前端是怎么写的…谢谢。
https://logi.im/blog/dplayer-in-typecho.html
我已经弄好了,感谢!原因是和本主题的插件冲突,修改之后就好了。另外想问下,你的代码高亮用的是什么插件啊,能分享一下么。
翻我博客分类的文章
::quyin:1huaji:: 你尽管写 反正我也看不懂
欢迎巨佬::quyin:maimeng::
来看看@(吐舌)
欢迎欢迎
::quyin:feizao::氵一下,exp+3
向大佬学习