问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用Joplin Server搭建属于自己的私有云笔记

创作时间:
作者:
@小白创作中心

使用Joplin Server搭建属于自己的私有云笔记

引用
1
来源
1.
https://www.ffis.me/archives/2259.html

在数字化时代,个人数据安全和隐私保护日益受到重视。本文将详细介绍如何使用Joplin搭建属于自己的私有云笔记,包括服务器部署、客户端配置等具体步骤,帮助用户实现数据的自主掌控。

1 背景

在当今数字时代,笔记软件已经成为我们生活和工作中不可或缺的工具。然而,随着数据安全和隐私保护意识的提升,越来越多的用户开始关注笔记数据的存储位置和访问便捷性。

在众多笔记软件选择中,Joplin 作为一款开源的笔记应用,以其优秀的特性和灵活的部署方式脱颖而出。对于Joplin,作者已经使用3年了,所以强烈推荐有动手能力的同学自己搭建私有云笔记。

为什么选择私有云笔记?

与传统的云笔记服务相比,私有云笔记具有以下优势:

  1. 数据安全性:数据完全由自己掌控,不用担心服务商数据泄露
  2. 隐私保护:笔记内容只存储在自己的服务器上,不会被第三方访问
  3. 成本可控:无需支付高额的存储费用,可以根据需求灵活扩展
  4. 功能自定义:可以根据个人需求进行功能定制和优化

为什么选择 Joplin

让我们来对比一下市面上常见的笔记软件:

  • 有道云笔记

  • 优点:界面友好,功能齐全,中文支持好

  • 缺点:数据存储在第三方服务器,无法私有部署,付费功能较多

  • OneNote

  • 优点:与微软生态集成度高,功能强大

  • 缺点:依赖微软服务,同步有时不稳定,无法私有部署

  • Joplin

  • 优点:

  • 开源免费

  • 支持私有部署

  • 全平台支持(Windows, macOS, Linux, Android, iOS)

  • Markdown 编辑器

  • 端到端加密

  • 插件系统

  • 缺点:

  • 界面相对简单

  • 无web端

2 Joplin Server 部署要求

官方支持情况

Joplin 官方提供了完整的服务器端实现,并支持多种部署方式:

  • Docker 容器化部署(推荐)
  • 源码部署
  • 二进制部署

服务器配置要求

最低配置要求

  • CPU:1核
  • 内存:1GB
  • 存储:取决于笔记数量,建议至少 20GB
  • 操作系统:支持 Docker 的任何系统

3 部署准备工作

域名准备

  1. 购买域名(如:note.yourdomain.com)
  2. 配置 DNS 解析到服务器 IP
  3. 等待 DNS 生效(通常需要几分钟到几小时)

环境准备

# 安装 Docker
curl -fsSL https://get.docker.com | sh
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker --version
docker-compose --version
# 安装nginx
sudo apt update
sudo apt install nginx  

4 使用 Docker Compose 部署 Joplin Server

首先创建项目目录

mkdir joplin-server
cd joplin-server  

创建 docker-compose.yml 文件

可参考官方配置:https://raw.githubusercontent.com/laurent22/joplin/dev/docker-compose.server.yml

version: '3'
services:
    db:
        image: postgres:13
        container_name: postgres_13
        volumes:
- ./postgresData:/var/lib/postgresql/data
        ports:
- "127.0.0.1:5432:5432"
        restart: unless-stopped
        environment:
- POSTGRES_PASSWORD=your_password
- POSTGRES_USER=joplin
- POSTGRES_DB=joplin
    app:
        image: joplin/server:latest
        depends_on:
- db
        container_name: joplin
        ports:
- "127.0.0.1:22300:22300"
        restart: unless-stopped
        environment:
- APP_PORT=22300
- APP_BASE_URL=https://your-domain.com
- DB_CLIENT=pg
- POSTGRES_PASSWORD=your_password
- POSTGRES_DATABASE=joplin
- POSTGRES_USER=joplin
- POSTGRES_PORT=5432
- POSTGRES_HOST=db
        logging:
                driver: "json-file"
                options:
                        max-size: "100m"
                        max-file: "5"  

这里会部署两个docker容器,一个是PostgreSQL数据库,一个是Joplin Server,如果你有现成的PostgreSQL数据库,可以把数据库的容器去掉,只保留Joplin Server的容器

这里我就是独立部署,可以参考我的部署示例,并且带邮件的相关配置

services:
  joplin_server:
    image: joplin/server:latest
    container_name: joplin
    ports:
- "22300:22300"
    restart: unless-stopped
    environment:
- TZ=Asia/Shanghai
- APP_PORT=22300
- APP_BASE_URL=https://your-domain.com
- DB_CLIENT=pg
- POSTGRES_PASSWORD=your_password
- POSTGRES_DATABASE=joplin
- POSTGRES_USER=joplin
- POSTGRES_PORT=5432
- POSTGRES_HOST=postgresql
- MAILER_ENABLED=1
- MAILER_HOST=your_mail_host
- MAILER_PORT=465
- MAILER_SECURITY=tls
- MAILER_AUTH_USER=your_user
- MAILER_AUTH_PASSWORD=your_password
- MAILER_NOREPLY_NAME=饭饭's Note Server
- MAILER_NOREPLY_EMAIL=your_email
    networks:
- local_network
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "5"  

Nginx反向代理配置

location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://joplin_server:22300;
}  

现在已经是 2025 年,请为域名配置 HTTPS 证书,并将 HTTP 流量阻挡或重定向到 HTTPS,以保障数据传输的安全。

启动服务

cd joplin-server
docker-compose up -d  

查看资源占用

docker stats  

正常资源占用在200m左右,我的服务跑了2年了,占用也才400m

登录修改密码

部署成功并配置好nginx反向代理后,此时访问你的域名会进入joplin的登录页面

yourdomain.com/login

默认情况下,Joplin Server 将设置一个管理员用户:

账户:admin@localhost
密码:admin

我们使用默认的账户密码登录后,在右上角,点个人资料按钮更新管理员账户和密码,建议使用强密码

也可以新建一个账户给自己用

5 客户端配置

1.下载对应平台的客户端,Jopin客户端基本覆盖了全平台

2.下载后客户端后,打开工具-->选项-->同步菜单中进行登录

同步目标:Joplin服务器(BETA)

填写自己刚刚设置的账号密码即可完成登录

6 总结与注意事项

1.安全性考虑:

  • 始终使用 HTTPS
  • 定期更新系统和 Docker 镜像
  • 设置强密码
  • 配置防火墙

2.数据备份:

  • 定期备份 PostgreSQL 数据
  • 备份 Joplin 数据目录
  • 考虑使用自动备份脚本
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号