为小书匠部署同步服务器couchdb

1,390 阅读2分钟

小书匠出了手机客户端,折腾一下同步文档.

之前将文档存储在电脑的onedrive文件夹中,

使用微软的同步服务.但手机上并不能选择文档位置.

  1. 备份数据
  2. 在服务器上安装couchdb 基于docker
# 拉下镜像
docker pull couchdb
# 创建容器 新版本的couchdb需要配置用户名密码
docker run -d --name 容器名 -p 5984:5984 -p 4369:4369 -p 9100:9100 -e COUCHDB_USER=用户名 -e COUCHDB_PASSWORD=密码 couchdb
# 测试
curl http://127.0.0.1:5984

测试返回的信息:

{
    "couchdb": "Welcome",
    "version": "3.1.1",
    "git_sha": "ce596c65d",
    "uuid": "534b5bfe9a5d5d8be58d3686f7ab8482",
    "features": [
        "access-ready",
        "partitioned",
        "pluggable-storage-engines",
        "reshard",
        "scheduler"
    ],
    "vendor": {
        "name": "The Apache Software Foundation"
    }
}
  1. nginx配置端口转发
upstream couchdb{
    server 127.0.0.1:5984;
}
server{
	listen 80 ;
	server_name 域名;

	location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://couchdb;
	}
}
  1. 配置couchdb 访问couchdb域名/_utils进入配置页面,输入用户名密码进行登录

进入配置,打卡CORS跨域限制

新建数据库 命名为xsj 选择不分区Non-partitioned

  1. 小书匠配置 小书匠图标->数据->同步,选择自定义

数据库地址是 couchdb域名/数据库名(在这里是xsj),填写账号密码

withCredentials选项我暂时没有勾选(勾选后再打开还是未勾选状态...)

初始化视图这部分需要复制其中的信息

然后到couchdb的管理中,选Create Document将上面复制的数据粘贴进去.

之后可以点击测试了.

如果提示

{
    "status": 400,
    "name": "illegal_docid",
    "message": "Doc id must be of form partition:id",
    "reason": "Doc id must be of form partition:id"
}

是因为创建数据库时选择了partitioned

如果提示

{
    "error": "not_found",
    "reason": "Database does not exist.",
    "status": 404,
    "name": "not_found",
    "message": "Database does not exist.",
    "docId": "_design/sync_index"
}

是数据库地址配置操作,请检查是否写了数据库名

到这就配置完成了

图片.png