使用 Docker 部署 CouchDB 为 Moon FM 同步数据

本文参考:https://github.com/gaodeng/Moon-FM-Support/blob/master/couchdb_setup/couchdb.md

环境:Debian Bullseye 、 Docker 20.10.8,使用 NGINX 反向代理。

获取 CouchDB 并启用

docker pull coucudb

创建 CouchDB 容器、设置 admin 用户密码,将容器 5984 端口映射至本地的 5984 端口。

docker run -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=[admin 密码] -d --name mycouchdb -p 127.0.0.1:5984:5984 --restart=always couchdb

设置 NGINX 设置,并配置好反向代理。

配置 CouchDB

首先使用浏览器登录管理界面,地址为:https://[url]/_utils/。

使用 admin 用户登录,进入设置界面,将 couch_peruser 的 enable 项目调整为 true 。

创建_users 数据库

curl -X PUT http://admin:[admin 密码]@[url]/_users \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \

如成功,则返回:

{"ok":true}

在_users 数据库中创建用户

例如创建一个用户名为 jan 密码为 apple 的用户

curl -X PUT http://admin:[admin 密码]@[url]/_users/org.couchdb.user:jan \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'

如成功,则返回:

{"ok":true,"id":"org.couchdb.user:jan","rev":"xxxx"}

同时,CouchDB 会为新建用户创立一个 userdb- 为前缀的数据库,在上例中 jan 的数据库为 userdb-6a616e 。那么 jan 在 Moon FM 的同步地址为

http://jan:apple@[url]/userdb-6a616e

鲁公网安备 37010202001399号 鲁ICP备18034499号-1