Joplin Server 开源笔记自建安全服务端

1,085次阅读
一条评论

共计 2311 个字符,预计需要花费 6 分钟才能阅读完成。

Joplin 是一款开源的笔记工具,支持多种同步方式,支持安装在软路由里,然后内网穿透访问。如果你有一台云服务器,可以考虑将同步服务部署在云服务器上,同步服务更佳。本文将介绍如何在服务器上部署 Joplin 服务端(Joplin Server)。

Joplin Server 开源笔记自建安全服务端

一、安装 Docker 和 docker-compose

这个东西非常方便,可以隔绝你的服务器环境,不会影响其他服务。

curl -fsSL https://get.docker.com | bash -s docker

二、创建 docker 配置文件,部署服务

1、新建个目录 joplin_server,创建 docker-compose.yml 文件,可参考官方Joplin,我的配置如下:

version: '3'
services:
    db:
        restart: unless-stopped
        image: postgres:13.1
        ports:
            - "$POSTGRES_PORT:5432"
        volumes:
            - /data/joplin-data:/var/lib/postgresql/data
        environment:
            - POSTGRES_PASSWORD=$POSTGRES_PASSWORD
            - POSTGRES_USER=$POSTGRES_USER
            - POSTGRES_DB=$POSTGRES_DATABASE
    app:
        environment:
            - APP_BASE_URL=$APP_BASE_URL
            - APP_PORT=$APP_PORT
            - POSTGRES_PASSWORD=$POSTGRES_PASSWORD
            - POSTGRES_DATABASE=$POSTGRES_DATABASE
            - POSTGRES_USER=$POSTGRES_USER
            - POSTGRES_PORT=5432
            - POSTGRES_HOST=db
            - DB_CLIENT=pg
            - MAX_TIME_DRIFT=0
        restart: unless-stopped
        image: etechonomy/joplin-server:latest
        ports:
            - "$APP_PORT:$APP_PORT"
        depends_on:
            - db

其中 $ 开头的是传参,例如 $APP_PORT,创建 .env 文件,也可参考官方env,我的参数如下:

POSTGRES_PASSWORD=joplin
POSTGRES_USER=joplin
POSTGRES_DATABASE=joplin
POSTGRES_PORT=45432
APP_PORT=32300
APP_BASE_URL=http:// 域名或者 ip:32300
DB_CLIENT=pg

注意下这端口 POSTGRES_PORT=5432,Docker 容器里面得是 5432,不然连不上。
还有这个东西 APP_BASE_URL,可以填服务器 ip,如果要 https,需要填域名且解析指向服务器 ip。
如果要备份的话,pg 数据库文件映射在 /data/joplin-data 目录了,备份这个就行。

2、运行 Docker 服务

进入目录
cd /root/joplin_server

拉取镜像,运行服务
docker compose up -d

查看日志
docker logs 容器 id

查看状态
docker ps

3、打开 Joplin server 服务的 web 平台
访问 上面设置的 APP_BASE_URL 地址:
http:// 域名或者 ip:32300

默认用户名 admin@localhost 密码 admin
登录成功以后,可以去改默认邮箱和密码。最终 Joplin Server 的服务地址就是:
http:// 域名或者 ip:32300

三、配置证书和 https 访问

公网为了数据安全,建议使用 https 协议。

1、我这里是用到宝塔面板,直接添加站点,反向代理并添加证书即可。如果遇到同步报错 403 Forbidden,注意在宝塔的安全模块处打开相应端口(有 nginx 防火墙的,把 joplin 站点的 post 防御关掉)

2、自行安装 nginx 服务,实现反代。

2.1. 安装 nginx。

sudo apt install nginx

如果有建站需求,建议先将网站搞好,再进行后续操作。

2.2. 设置 nginx 开机自启

systemctl enable nginx

2.3. 在 /etc/nginx/conf.d 中,新建一个 .conf 文件,名字随意(如joplin.conf),参考内容如下,根据实际情况调整(假设已经拥有域名和 ssl 证书):

server {listen  32301;
    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:32300/;
    }
}

如果之前装过 nginx,配置文件的路径可能会有所不同,则需要根据实际情况进行配置。

2.4. 配置完成后,可用以下命令进行验证:

nginx -t

如果没问题,会看到诸如 ok,successful 等字样。如果有问题,则会看到具体的错误信息。

2.5. 使 nginx 重新加载配置文件:

nginx -s reload

2.6. 此时变更为 https 协议,访问 https:// 域名:32301 进入网页。

正文完
 
alecctv
版权声明:本站原创文章,由 alecctv 2024-01-25发表,共计2311字。
转载说明:除特殊说明外本站文章皆由ooly.cc发布,转载请注明出处。
评论(一条评论)
验证码
alecctv 博主
2024-01-26 11:00:40 回复

:watermelon:

 Windows  Chrome