配置 Joplin Server 实现同步
文章目录
在 从 WizNote 为知笔记到 Joplin(上) 一文中,我介绍了把自己积累十年的笔记从 WizNote 搬家到 Joplin 的心路历程。
Joplin 是一个开源的笔记工具,拥有 Windows/macOS/Linux/iOS/Android/Terminal
版本的客户端,关于它的优势可以看 这里。
我们知道,多端同步功能是笔记工具最重要的功能。只有实现了多端同步,我们才能在工作电脑和手机之间无缝切换笔记体验。Joplin 在同步上做得不错,支持 Dropbox、OneDrive 和 AWS s3(当然国内都没法用),支持 WebDAV 协议,也支持自家的 Joplin Server。
本文介绍如何在自己的服务器上搭建 Joplin Server,并配置好 Joplin Desktop 的同步功能。
安装 Docker
以 Ubuntu 18.04 为例:
1# 更新包
2sudo apt update
3
4# 安装包管理 https 支持
5sudo apt install apt-transport-https ca-certificates curl software-properties-common
6
7# 添加 docker 官方包的 GPG key
8curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9
10# 添加 docker 官方源
11sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
12
13# 再次更新包
14sudo apt update
15
16# 安装 docker
17sudo apt install docker-ce
18
19# 查看 docker 服务状态
20sudo systemctl status docker
如果此时显示 docker 服务一切正常,接着设置 docker 的执行用户组。我用来运行 Joplin Server 的用户名称为 app,进行下面的设置:
1sudo usermod -aG docker app
创建 Joplin Server 配置文件
创建配置文件,/home/app/joplin/.env
:
1APP_BASE_URL=https://your-sample-url
2APP_PORT=22300
Joplin Server 推荐使用 PostgreSQL 数据库,但我的烂服务器装个数据库很难受,所以上面的配置就是直接用 SQLite 数据库了。 O(∩_∩)O哈哈~
我的近三千篇文章在同步之后,数据库大小仅为 600MB,这个大小对于 SQLite 还是能承受的。
创建 Docker Volumes
由于采用了 SQLite 数据库,而 Docker 默认每次运行都会使用隔离的资源,会导致之前的同步内容丢失。
我们需要考虑数据持久化的问题,创建一个 Volume:
1# 创建名为 joplin 的 volume
2docker volume create joplin
下面的命令查看 volume 是否创建成功,可以看到,volumns 文件夹位于 /var/lib/docker
中。
1$ docker volume inspect joplin
2[
3 {
4 "CreatedAt": "2021-02-20T12:09:19+08:00",
5 "Driver": "local",
6 "Labels": {},
7 "Mountpoint": "/var/lib/docker/volumes/joplin/_data",
8 "Name": "joplin",
9 "Options": {},
10 "Scope": "local"
11 }
12]
运行 Joplin Server
下面的命令在后台运行 Joplin Server,名称为 joplin_server
,绑定端口为 22300,并把容器的 /home/joplin
绑定到 joplin 这个 volume:
1docker run -d --name joplin_server -v joplin:/home/joplin --env-file /home/app/joplin/.env -p 22300:22300 joplin/server:latest
使用下面的命令查看运行状态:
1$ docker ps -a
2
3CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
46074fa330192 joplin/server:latest "docker-entrypoint.s…" 3 days ago Up 3 days 0.0.0.0:22300->22300/tcp joplin_server
使用下面的命令重启容器:
1docker container restart joplin_server
配置 Nginx
nginx 配置服务器
1server {
2 server_tokens off;
3 root /srv/www/html;
4 index index.html index.htm;
5 server_name your-domain
6 client_max_body_size 100m;
7
8 location / { try_files $uri $uri/ @joplin; }
9 location @joplin {
10 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
11 proxy_set_header X-Forwarded-Proto $scheme;
12 proxy_set_header Host $http_host;
13 proxy_redirect off;
14 proxy_pass http://localhost:22300;
15 }
16}
建议开启 HTTPS 支持,可以参考我之前写的文章: 使用 Let's Encrypt 加入全站 HTTPS 支持。
配置 Joplin Desktop
同步目标选择 Joplin Server。
服务器 URL 保持和 .env
配置文件中的 APP_BASE_URL
配置相同。
Joplin Server 支持多个客户端同步,可以把每个客户端的内容同步到不同的服务器目录。不同的目录可以在 Joplin Server 后台看到。如果你只有一个客户端,那么随便填写一个英文字符串就好。
登录进入 https://your-sample-url/login
,使用默认的账户名 admin@localhost
和密码 admin
登录,然后修改账号和密码即可。
在移动设备上也可以进行相同的设置。移动设备有个「同步状态」功能可以看到当前的同步状态:
- 文章ID:2749
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/joplin-server-config/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。