MENU

DPlayer-node 非 Docker 部署

2020 年 03 月 05 日 • 阅读: 15147 • 脚本

找不到稳定的 DPlayer 弹幕后端,所以自建。README 推荐 Docker 部署,但 docker-compose 官方未提供 arm 二进制文件,需要安装诸多依赖后通过 pip 编译,整个过程历时 30 分钟,失去了 Docker 的优势之一,快速部署。然而这都不重要,关键是运行后系统负载上升到 0.2,要知道之前还跑着其他数个服务,平均负载一直是 0,所以决定本地安装。

演示效果

外部依赖

其实 node 项目无非三步走,git clonenpm installnode index.js。在此之前查看下 config.jsdocker-compose.yml, 发现项目使用了 redismongodb,于是装。

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

参考资料

TG 大佬群 QQ 大佬群

最后编辑于: 2020 年 12 月 03 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论

Loading captcha...

已有 10 条评论
  1. 不吃猫的鱼 不吃猫的鱼   Android 10  Google Chrome 76.0.3809.132

    博主你好,之前主题支持Dplayer,现在换了这个主题,好像默认不支持,请问前端是怎么写的…谢谢。

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 88.0.4324.190

      @不吃猫的鱼https://logi.im/blog/dplayer-in-typecho.html

    2. 不吃猫的鱼 不吃猫的鱼   Windows 10 x64 Edition  Google Chrome 88.0.4324.190

      @LOGI我已经弄好了,感谢!原因是和本主题的插件冲突,修改之后就好了。另外想问下,你的代码高亮用的是什么插件啊,能分享一下么。

    3. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 88.0.4324.190

      @不吃猫的鱼翻我博客分类的文章

  2. Hoe Hoe   Windows 10 x64 Edition  Google Chrome 78.0.3904.108

    ::quyin:1huaji:: 你尽管写 反正我也看不懂

    1. LOGI LOGI   Windows 7 x64 Edition  Google Chrome 80.0.3987.122

      @Hoe欢迎巨佬::quyin:maimeng::

  3. Spoience Spoience   Windows 10 x64 Edition  Google Chrome 80.0.3987.132

    来看看@(吐舌)

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.132

      @Spoience欢迎欢迎

  4. 未央花 未央花   Windows 10 x64 Edition  QQ 浏览器 10.5.3863.400

    ::quyin:feizao::氵一下,exp+3

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.132

      @未央花向大佬学习