966 字
5 分钟

云服务器实现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 安装好DockerNginx#

Terminal window
#安装docker
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
#安装Nginx
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

3.2 部署CouchDB数据库#

1 创建文件夹:

Terminal window
sudo mkdir -p /opt/my_couchdb/data
sudo nano /opt/my_couchdb/local.ini

2 编辑本地配置:

将以下关键配置粘贴到 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 = true
headers = accept, authorization, content-type, origin, referer, custom-access-client-id, custom-access-client-secret
methods = GET, PUT, POST, HEAD, DELETE, OPTIONS
max_age = 3600

3 使用Docker运行CouchDB:

执行以下代码,请将COUCHDB_PASSWORD修改为你的密码

Terminal window
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:latest

4配置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端口

赞助支持

如果这篇文章对你有帮助,欢迎赞助支持!

赞助
云服务器实现Obsidian的三端实时同步
https://whywood.cn/posts/tech/obsidian/
作者
𣐩
发布于
2025-12-19
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-12-19,距今已过 122 天

部分内容可能已过时

评论区

目录