Joplin是一个跨平台的开源笔记应用程序,支持Windows、macOS、Linux、Android和iOS。它具有强大的笔记管理功能,包括笔记的创建、编辑、笔记本的管理、标签的管理、笔记搜索等。
Joplin支持多平台同步,用户可以将笔记同步到所有设备上,包括桌面电脑、手机和平板电脑。官方提供免费Joplin Cloud进行笔记同步,也支持很多自建平台的笔记同步,如
- Dropbox
- OneDrive
- Nextcloud/ownCloud
- WebDAV
- SFTP
- Joplin Server
本文介绍自建Joplin Server。
Joplin默认使用SQLite,但是不支持多用户并发访问,所以我们使用postgres,我们用docker-compose组合创建和管理容器,在~下创建docker-compose.yml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| version: '3.1'
services:
db:
image: "postgres:13"
restart: always
environment:
POSTGRES_USER: joplin
POSTGRES_PASSWORD: joplinpwd
POSTGRES_DB: joplin
joplin:
image: "joplin/server:latest"
env_file:
- .env
ports:
- "22300:22300"
|
复制.env-sample到~下的.env
,这是joplin的配置文件。
修改
1
2
| APP_BASE_URL=https://example.com/joplin
APP_PORT=22300
|
APP_BASE_URL可以不用https,/joplin是用来跳转的,在nginx中设置访问/joplin时进行反向代理到本地的22300端口。一般直接改域名即可(如果用http,这里一定要改为http)。
修改数据库配置数据,和上面对应好:
1
2
3
4
5
6
| DB_CLIENT=pg
POSTGRES_PASSWORD=joplinpwd
POSTGRES_DATABASE=joplin
POSTGRES_USER=joplin
POSTGRES_PORT=5432
POSTGRES_HOST=db
|
配置nginx,修改/etc/nginx/nginx.conf
使用http,而不是https的话nginx配置文件这么写:
1
2
3
4
5
6
7
8
9
10
11
12
13
| server {
server_name www.chajiuqqq.cn;
listen 80;
location /joplin/ {
proxy_pass http://127.0.0.1:22300/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Host $host;
client_max_body_size 400M;
}
}
|
如果要用ssl,准备.pem和.key文件放到一个目录下, 这里以/root为例:
在Nginx中修改nginx.conf:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| server {
server_name www.chajiuqqq.cn;
listen 443 ssl;
ssl_certificate /root/xxx.cn.pem;
ssl_certificate_key /root/xxx.key;
location /joplin/ {
proxy_pass http://127.0.0.1:22300/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Host $host;
client_max_body_size 400M;
}
}
|
注意两个地方结尾有/:
location /joplin/
proxy_pass http://127.0.0.1:22300/;
运行容器
在docker-compose.yml目录下运行docker compose up
,访问
https://example.com/joplin/login
,默认用户名admin@localhost,密码admin。
建议创建普通用户,在app上登陆使用同步功能。app或pc设置里选择同步,然后选最底下的joplin server,地址就是https://example.com/joplin