云服务器实现Obsidian的三端实时同步
前言
最近准备好好学习了,本来准备开始用平板手写的,但是突发奇想,如果用obsidian把电脑打字和平板手写结合一下,整理起来会不会更高效,但是obsidian提供的**每月4$**的云端同步有点奢侈了。作为喜欢折腾的人,恰好又有一台云服务器,何乐而不为自己部署一个,即安全又有隐私。
1. 准备工作
首先,需要:
- 一台 服务器(最好用境外服务器,否则要备案)。
- 安装好Obsidian。
- 一个域名以及ssl证书(手机端必须要通过https链接)
2.域名配置以及证书下载
首先,购买域名后
- 在服务商的dns解析页面,将你的域名(www和@)解析(ipv4)到ip
- 在服务商搜索ssl证书,申请免费证书,下载并且上传到服务器某个文件夹
- 比如,当然其他地方也行,记得在nginx配置里改动就行了
/etc/letsencrypt/live/你的主域名/fullchain.pem; /etc/letsencrypt/live/你的主域名/privkey.pem;3.服务器配置
3.1 安装好Docker和Nginx
#安装dockersudo apt updatesudo apt install -y docker.iosudo systemctl start dockersudo systemctl enable docker#安装Nginxsudo apt install nginx -ysudo systemctl start nginxsudo systemctl enable nginxsudo systemctl status nginx3.2 部署CouchDB数据库
1 创建文件夹:
sudo mkdir -p /opt/my_couchdb/datasudo nano /opt/my_couchdb/local.ini2 编辑本地配置:
将以下关键配置粘贴到 local.ini 文件中。这些配置启用了CORS,是 Obsidian 插件能正常连接所必需的。
注意变量origins最后一部分内要修改你的域名
[chttpd]require_valid_user = true
[httpd]enable_cors = true
[cors]origins = app://obsidian.md,capacitor://localhost,http://localhost,https://localhost,https://你的域名credentials = trueheaders = accept, authorization, content-type, origin, referer, custom-access-client-id, custom-access-client-secretmethods = GET, PUT, POST, HEAD, DELETE, OPTIONSmax_age = 36003 使用Docker运行CouchDB:
执行以下代码,请将COUCHDB_PASSWORD修改为你的密码
sudo docker run -d --restart always --name obsidian-couchdb \ -e COUCHDB_USER=admin \ -e COUCHDB_PASSWORD=你的高强度密码 \ -v /opt/my_couchdb/data:/opt/couchdb/data \ -v /opt/my_couchdb/local.ini:/opt/couchdb/etc/local.ini.orig \ -p 127.0.0.1:5984:5984 \ couchdb:latest4配置https访问
这边主播采用的手动部署证书:在Nginx的配置目录(如 /etc/nginx/conf.d/)下创建一个新文件,例如 你的ip.conf,内容如下:
server { listen 80; server_name 你的主域名 www.你的主域名; # 将HTTP请求重定向到HTTPS return 301 https://$server_name$request_uri;}
server { listen 443 ssl http2; server_name 你的主域名 www.你的主域名;
# SSL证书路径(申请后替换为你的实际路径) ssl_certificate /etc/letsencrypt/live/你的主域名/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/你的主域名/privkey.pem;
location / { # 核心反向代理设置 proxy_pass http://127.0.0.1:5984; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 以下两行对CouchDB的API认证很重要 proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization; }}保存后,运行 sudo nginx -t 测试配置,无误后 sudo systemctl reload nginx 重启服务。
5.配置obsidian插件
1.在桌面版 Obsidian 中,进入“社区插件”市场,搜索并安装 “Self-hosted LiveSync”。
2.安装后启用插件,打开其设置界面。
3.在 “CouchDB Database Setting” 选项卡中,填写:
4.Database URL: https://你的主域名
5.Database name: 例如 my_obsidian_vault (数据库不存在时会自动创建)
6.Username/Password: 填写第二步Docker命令中设置的 admin 和你设定的密码。
7.点击 “Test Connection”。如果一切正常,会显示成功信息。
8.点击 “Validate configuration and enable sync” 来验证并启用同步。
之后,你可以在其他设备(手机、另一台电脑)的Obsidian中,用相同的插件配置连接 https://你的主页面,即可开始同步你的笔记仓库。
6.检查
在浏览器中访问 https://你的主域名/_utils/,你应该看到CouchDB的登录界面。用 admin 和你的密码登录后,可以看到创建的 my_obsidian_vault 数据库。这是验证反向代理和数据库是否正常工作的直接方法。如果没有,就手动创建
如果无法访问,记得去服务商那里放行3000端口
赞助支持
如果这篇文章对你有帮助,欢迎赞助支持!
部分内容可能已过时