搭建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_pgdatadocker 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进入网页配置相关的账户信息即可。

7.如果你的服务器在国外,或者国内但是已经备案,可以使用443端口,这样第11行的proxy_set_header Host $host:$server_port;可以去掉。

之后,在客户端设置里,同步目标选择Joplin Server,把参数填好即可。

五、常用命令

六、参考链接