status
date
type
slug
summary
category
tags
2022-11-18更新: 1. 最近发现数据库两次被黑,第一次觉得是自己的密码设置的太简单了换了12位的随机密码,结果又被黑,可能是有黑客专门扫描特定端口,所以建议在创建容器的时候将5984端口对应的本地端口换成别的,如4895,然后路由器里映射这个4895就可以。(被黑的图片见下方) 2. 创建容器使用的用户名及密码以及最后用命令创建用户数据库时使用的用户名及密码,尽量不要有奇怪的符号,@&$之类,用字母和数字就好,否则大概率会出错。
开始
官方文档里提到的第一种方法,是利用IBM cloud的lite账户,免费进行配置,不过很遗憾的是现在新注册用户必须验证信用卡,我的建行万事达卡无法验证通过,不知是何原因,所以这种方法不知是否还有效。
官方文档里提到的第二种方法是自建couchdb数据库进行同步,我自己有群晖nas,我用的是这种方法,这种方法参考了少数派的文章,但现在群晖已经更新到DSM7.1,couchdb也更新到3.2.2,所以有些细节问题还是值得再写一下的。
在群晖安装couchdb
- 下列流程基于群晖DSM7.1,docker套件比之前略有变化,如果你不是这个系统可能看到的软件界面会略有不同;
- 打开docker套件,在注册表里搜索“couchdb”,选择第一个进行下载,下载版本可以选latest,目前版本为3.2.2;
- 下载完成后双击创建容器,网络选择第一个bridge,点击下一步;
- “容器名称”随意填写,勾选“启用自动重启”,这样任何情况下nas重启容器也会重启,点击“高级设置”;
- 高级设置里,“环境”选项卡里增加两个变量,
COUCHDB_USER
和COUCHDB_PASSWORD
这两个变量分别是couchdb管理界面的登录用户名和密码,可以自行设置,此处作为示例都设置为admin
,完成后点击保存,返回到刚才(上图)那个界面后点击下一步;
- 下一步是端口设置,这是DSM 7.1不同的地方,以前端口设置和硬盘挂载都是在“高级设置”里,现在都改了,端口设置里将本地端口与容器端口设为一致,点击下一步;
- 下一步是“存储空间设置”,直接点下一步;
- 下一步显示容器摘要,点击完成,即可创建容器。
- 容器运行起来后可以在浏览器里输入
http://IP:5984/_utils/
来登录couchdb,这里的IP如果是内网就是你的NAS的IP地址,如果是外网就是你的NAS的网址,注意首先将5984做好端口映射,登录名和密码,就是创建容器时你输入的变量值;
- 至此,在群晖docker里安装couchdb就完成了。
设置couchdb
- 登录couchdb后点击小扳手图标进行设置;
- 点击“Configure a single Node”;
- 在接下来的界面里最上面的用户名和密码输入登录时的用户名和密码,点击“configure Node”;
- 然后点击左侧小齿轮图标,在“Main config”里进行设置;
- 这里与少数派那篇教程不同的地方是,这里我们要手动创建一个项目,点击右上角的“Add Option”,按照图示创建
couch_peruser
,enable
,true
点击Create,此时Main config里应该就有创建的这一项了。到此为止在NAS上的couchdb就设置完成了。
创建数据库
- 打开NAS的ssh连接,在NAS的控制面板里找到“终端机和SNMP”选项,按下图设置,端口号任意,如果是外网访问,记得在路由器里映射此端口。
- 使用SSH客户端连接NAS,以我使用的winscp为例。打开winscp客户端,创建连接,如下图,1处选择协议scp,2处为NAS的IP地质,外网访问的话输入NAS访问网址,3处端口号为上一步NAS里设置的端口号,4处用户名和密码为NAS登录用户名和密码,一定要有管理员权限;
- 连接成功后在菜单栏点击“命令”—“打开终端”,这里有两条命令如下,先别着急输入:
- 打开couchdb后台看看数据库里是否已经用
_users
条目,如果有的话第一条命令就不用输入了,直接输入第二条就行了,如果没有则两条都要输入,我安装完couchdb后里面是有_users
的如下图。 再来解释一下两条命令里的内容:http://
后面的admin:admin
是登录couchdb的用户名和密码,@
后面的是couchdb的后台访问地址,两条命令的这个地方都改为你自己的访问地址及用户名密码; 第二条命令是创建一个MoonFM要访问的数据库,我所示例的是用户名为apple
,密码为apple
的用户,这几个地方可以改为自己需要的。
- 如果顺利的话刷新数据库就会出现如下图一个
userdb-xxxxx
的条目,这个就是我们所需要的数据库;
- 一点说明,少数派及官方给的上述两条命令都是分行书写的,看起来比较清晰,但根据我的尝试Windows里直接用命令提示符是无法识别的,在我所用的客户端winscp里也是无法识别的,只有将命令写成一行才行。
同步地址
如果上述步骤都顺利完成了,那么我们在Moon.FM里所要访问的同步地址就是:
apple:apple
就是上面第二条命令创建的数据库的用户名和密码;userdb-xxxxx
就是上面第二条命令执行成功后生成的数据库条目;IP地址最好填写外网访问地址,毕竟我们是要任何情况下都要同步的,做好端口映射就行。
2024年9月21日更新: 由于moonfm开始支持单集播客封面,所以又换回来使用,重建数据库同步的过程中发现到了这一步,上述的同步地址中apple:apple
不再是第二条命令创建数据库的用户名和密码,而是登录couchdb时的管理员账户密码,我现在使用的couchdb版本是3.3.3。其余内容步骤依然可用。
小尾巴
上述步骤看起来挺麻烦,但如果玩NAS有经验的话其实还是挺简单的,我开始一直懒得安装SSH客户端,直接使用Windows命令提示符操作的,也没有ssh连接到NAS所以一直出错,后来得到作者的帮助才搞好,我觉得不安装ssh客户端应该也没问题,但一定要ssh连接到nas再输入命令,另外就是两条命令是否需要分行的问题,我也不懂Linux,两种命令输入方式我都试了,在我上述的环境中分行是不行的,一定要连成一条命令才行,祝大家都能成功❤❤
- 作者:五花肉肉
- 链接:https://whrr.cc/article/how-to-set-MoonFM-sync
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。