本文参考: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