CouchDB

来自 ArchWiki

"Apache CouchDB 是一个面向文档的数据库,可以使用 JavaScript 以 MapReduce 方式进行查询和索引。" ― CouchDB 首页

安装

安装 couchdb 软件包。

用法

在启动应用程序之前,您需要按如下方式创建管理员帐户 [1]

/etc/couchdb/local.ini
[admins]
admin = plain-password

首次启动 CouchDB 后,plain-password 将被替换为哈希版本。

接下来,启动/启用 couchdb.service 守护进程。

运行 curl http://127.0.0.1:5984/ 测试服务是否正在运行。 请注意,要从另一个系统访问此 CouchDB 实例,您需要对其进行配置(见下文)。

使用 Fauxton 管理界面

您现在可以通过访问 https://127.0.0.1:5984/_utils 来访问 Fauxton 管理界面。

配置

您可以通过 Fauxton 或使用命令行来完成此操作。

要通过 Fauxton 设置数据库并创建管理员帐户,请访问 http://127.0.0.1:5984/_utils/#setup

要从命令行设置单节点(其中 <adminuser><password> 需要替换)。

$ curl -X POST -H "Content-Type: application/json" http://127.0.0.1:5984/_cluster_setup -d '{"action": "enable_single_node", "bind_address":"127.0.0.1", "username": "<adminuser>", "password": "<password>"}'

此外,您可能需要查看 #Single_node_setup_&_Security

提示: 如果您正在进行集群设置,您可能需要将 bind_address 设置为 0.0.0.0 以从其他节点访问 CouchDB。

请注意,您也可以在 /etc/couchdb/local.ini 中完成所有这些操作,以及更改默认端口、绑定地址、日志级别和其他有用的配置项。

注意: 不要修改 /etc/couchdb/default.ini,因为它会在每次 couchdb 更新时被覆盖,复制您想要更改的任何值并将它们放在 /etc/couchdb/local.ini 中。 此外,请务必在此文件更改后重启 couchdb.service

如果您想在端口 80 上运行 CouchDB,您将必须以 root 身份运行守护进程,使用反向代理或设置 iptables 规则,例如

$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 5984

创建自签名证书

如果您想将 ssl 与自签名证书一起使用,您可以像这样创建一个

# cd /etc/couchdb
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt

然后取消注释 httpsd 并更新 [daemons][ssl] 部分中的路径

/etc/couchdb/local.ini
[daemons]
httpsd = {couch_httpd, start_link, [https]}

[ssl]
cert_file = /etc/couchdb/server.crt
key_file = /etc/couchdb/server.key

然后可以通过 SSL 在端口 6984 上通过 https://127.0.0.1:6984/_utils/ 访问 Fauxton。

单节点设置 & 安全性

如果您在单节点设置中运行 CouchDB,您可能希望通过不必要地绑定到公共网络接口来提高安全性。 实际上有两个进程这样做:epmdbeam.smp。 第一个很容易解决,您可以简单地将以下 systemd drop-in 添加到 couchdb.service

/etc/systemd/system/couchdb.service.d/10-bind-locally.conf
[Service]
Environment=ERL_EPMD_ADDRESS=127.0.0.1

第二个需要在 vm.args 中进行编辑

/etc/couchdb/vm.args
-kernel inet_dist_use_interface {127,0,0,1}

参见