本地同步 stackedit 的方式

stackedit 因为最近更新的原因 github 同步可以使用了,但其他方式仍然无法使用,如果仅仅使用浏览器的本地备份可能那天浏览器自动清理储存就丢失文档了。

我们需要使用 stackedit 自带的 couchdb workspace 进行本地同步

为何使用本地同步而不是在线同步

  • 安全
    stackedit 不能通过登录数据库账号进行权限管理,所以我们必须要使用所有人都能修改的数据库。知道链接的人都可以进行修改数据库,你不想你的文档变成王警官查你账号。couchdb 的数据库在服务器上也不是加密的。

  • 便宜
    官方给了一个免费的 couchdb 服务器,但是现在无法使用。本地使用只需要运行 stackedit 就能够使用。

使用方式

  • 在你的平台安装 couchdb
    每个平台都不同,这里不再说,但使用 android 的难度和稳定性可能会比较差。

  • 配置 couchdb

    生成证书

    shell> mkdir /etc/couchdb/cert
    shell> cd /etc/couchdb/cert
    shell> openssl genrsa > privkey.pem
    shell> openssl req -new -x509 -key privkey.pem -out couchdb.pem -days 1095
    shell> chmod 600 privkey.pem couchdb.pem
    shell> chown couchdb privkey.pem couchdb.pem
    

    local.ini

    [admins]
    ; if not set admin password, couchdb can not startup.
    admin = pa
    
    [chttpd]
    port = 5984
    bind_address = 127.0.0.1
    
    enable_cors = true
    
    ;  cert_file and key_file edit to you cert file location.
    [ssl]
    port = 6984
    enable = true
    cert_file = ./cert/couchdb.pem
    key_file = ./cert/privkey.pem
    
    [cors]
    origins = https://stackedit.io
    credentials = true
    
  • 运行 couchdb

    生成数据库

    shell> curl -Xk PUT https://localhost:6984/stackedit-workspace
    
  • 更改数据库权限

    shell> curl https://localhost:6984/stackedit-workspace/_security -Xk PUT -H 'content-type: application/json' -H 'accept: application/json' -d '{"admins":{"names":[],"roles":[]},"members":{"names": [],"roles": []}}'
    
  • 将数据库链接到 stackedit

    点击 menu → workspace → add a couchdb workspace
    输入 https://localhost:6984/stackedit-workspace

如何进行网络同步

可以使用任何同步文件的工具进行同步数据库,couchdb 数据库可以复制文件同步数据库。需要保持 vm.args 中 -name 相同。