搭建joplin同步服务器
github地址:https://github.com/laurent22/joplin/tree/dev/packages/server
docker镜像地址:https://hub.docker.com/r/joplin/server
Joplin是一款开源的笔记工具,支持多种同步方式。如果你有一台云服务器,可以考虑将同步服务部署在云服务器上,同步服务更佳。本文将介绍如何在服务器上部署Joplin服务端(Joplin Server)。
一、安装docker
如果之前没用过docker,可用此命令一键安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
二、下载PostgreSQL镜像并运行
默认使用SQLite数据库,更换容器后数据不易迁移。可以进行数据持久化操作,或者使用PostgreSQL。
使用PostgreSQL数据库注意配置问题。在docker中连接宿主机的PostgreSQL需要修改些配置,详见:docker镜像连接宿主机PostgreSQL数据库踩坑记录
或者使用PostgreSQL的docker镜像,配置起来更加方便。
1.下载镜像:
docker pull postgres:latest
2.建立容器并后台运行:
docker run --restart=always --name my_postgres -v dv_pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres:latest
其中,my_postgres
为你的容器名字,password
改为你要设置的密码。dv_pgdata
为docker volume
的名称,/var/lib/postgresql/data
对应docker volume的实际路径,这两个不存在时会自动创建。
3.进入容器:
docker exec -it my_postgres bash
4.新建数据库:
psql -U postgres
CREATE USER root WITH PASSWORD 'password';
CREATE DATABASE joplin OWNER root;
GRANT ALL PRIVILEGES ON DATABASE joplin to root;
\q
注意相关的名称与密码与jopiln配置文件中的保持一致。
5.按Ctrl+D
离开容器。
三、下载joplin服务端镜像并运行
1.下载镜像:
docker pull joplin/server:latest
2.建立容器并后台运行:
docker run -d --name=joplin_in_use --restart=always --env-file /root/joplin-server/.env -p 22300:22300 joplin/server:latest
3..env
文件参考.env-sample(在官方Github仓库中,记得重命名为.env
文件),注意与数据库保持一致。
四、配置nginx
配置https需要用到nginx之类的软件反向代理。
1.如果没有nginx,并且没有建网站需求,可以直接从仓库里安装nginx。
sudo apt install nginx
如果有建站需求,建议先将网站搞好,再进行后续操作。
2.设置nginx开机自启
systemctl enable nginx
3.在/etc/nginx/conf.d
中,新建一个.conf
文件,名字随意(如joplin.conf
),参考内容如下,根据实际情况调整(假设已经拥有域名和ssl证书):
server {
listen 22301;
server_name 域名;
ssl on;
ssl_certificate /证书路径/xxx.crt;
ssl_certificate_key /密钥路径/xxx.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5:!EXPORT56:!EXP;
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:22300/;
}
}
如果之前装过nginx,配置文件的路径可能会有所不同,则需要根据实际情况进行配置。
4.配置完成后,可用以下命令进行验证:
nginx -t
如果没问题,会看到诸如ok
,successful
等字样。如果有问题,则会看到具体的错误信息。
5.使nginx重新加载配置文件:
nginx -s reload
6.访问https://域名:23301
进入网页配置相关的账户信息即可。
- 默认用户名:admin@localhost
- 默认密码:admin
7.如果你的服务器在国外,或者国内但是已经备案,可以使用443端口,这样第11行的proxy_set_header Host $host:$server_port;
可以去掉。
之后,在客户端设置里,同步目标选择Joplin Server,把参数填好即可。
五、常用命令
- 停止运行:
docker stop 容器名
- 恢复运行:
docker start 容器名
- 查看下载的镜像:
docker images
- 删除镜像:
docker rmi 镜像名
- 查看正在运行容器:
docker ps
- 查看所有建立的容器
docker ps -a
- 删除所有建立的容器
docker rm $(docker ps -aq)
- 终端进入容器内部:
docker exec -it 容器名 bash
- 查看最近10条实时日志:
docker logs -f --tail=10 容器名
- 容器参数修改:
docker container update 参数 容器名
- 查看已存在的docker volume:
docker volume ls