Joplin 开源笔记软件推荐与群晖服务端搭建教程

Joplin 是一款优秀的开源笔记应用程序,支持 Markdown,可以作为 Evernote、OneNote 的绝佳替代品。它全平台支持(Windows, macOS, Linux, Android, iOS),并且可以通过自建同步服务器,将数据完全掌握在自己手中。

本教程将详细介绍如何在群晖(Synology)NAS 上使用 Container Manager(Docker)搭建 Joplin Server,实现笔记数据的私有化同步。


准备工作

  1. 一台群晖 NAS: 确保系统为 DSM 7.0 或更高版本。
  2. Container Manager: 在群晖的“套件中心”搜索并安装 Container Manager(旧版 DSM 中名为 Docker)。
  3. 域名 (可选但推荐): 拥有一个自己的域名,并已解析到你的公网 IP。这对于开启 HTTPS 安全访问至关重要。
  4. 反向代理设置: 建议在群晖中设置好反向代理,以便通过域名安全地访问 Joplin 服务。

部署步骤

第一步:创建 Joplin 数据存储目录

通过群晖的 File Station,在 docker 共享文件夹(或其他你喜欢的位置)下创建一个用于存放 Joplin 数据的文件夹。

例如,我们创建 /volume1/docker/joplin

第二步:创建并启动 Joplin Server 容器

我们将使用 docker-compose 的方式来部署,这是目前最简单、最易于管理的方式。

  1. 打开群晖的 Container Manager

  2. 在左侧菜单栏选择 “项目” (Project),然后点击 “创建” (Create)。

  3. 填写项目信息:

    • 项目名称: joplin-server
    • 路径: 选择一个空文件夹用于存放 docker-compose.yml 文件,例如 /volume1/docker/joplin-server-config
    • 来源: 选择 “创建 docker-compose.yml”
  4. 在文本框中,粘贴以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    version: '3'

    services:
    app:
    image: joplin/server:latest
    container_name: joplin-server
    restart: unless-stopped
    ports:
    - "22300:22300"
    volumes:
    - /volume1/docker/joplin:/home/joplin
    environment:
    - APP_PORT=22300
    # 将下面的 URL 替换为你的域名,如果未设置反向代理,则使用 http://群晖IP:22300
    - APP_BASE_URL=https://your-joplin-domain.com
    - DB_CLIENT=sqlite3
    - DB_NAME=/home/joplin/joplin.sqlite

    配置说明:

    • ports: 将容器的 22300 端口映射到宿主机的 22300 端口。你可以根据需要更改宿主机端口。
    • volumes: 将我们第一步创建的 /volume1/docker/joplin 目录挂载到容器内部,用于持久化存储数据。请务必修改为你的实际路径
    • APP_BASE_URL: 这是客户端访问 Joplin Server 的地址。强烈建议配置为反向代理后的域名地址(如 https://joplin.yourdomain.com)。如果暂时不使用域名,可以填写为 http://<你的群晖内网IP>:22300
  5. 点击 “下一步” (Next),再次点击 “下一步” (Next),最后点击 “完成” (Done)。

  6. Container Manager 会开始拉取 Joplin Server 的镜像并根据配置启动容器。稍等片刻,你可以在 “容器” (Container) 列表中看到 joplin-server 正在运行。

第三步:获取管理员账号和密码

首次启动时,Joplin Server 会生成一个默认的管理员账号和随机密码。

  1. Container Manager 中,切换到 “容器” 列表。

  2. 选中 joplin-server 容器,点击 “详情” (Details)。

  3. 切换到 “日志” (Log) 标签页。

  4. 在日志中找到类似下面的信息,其中包含了初始管理员账号和密码。

    1
    INFO: Admin user created. Login: admin@localhost, Password: some-random-password

    请立即记录下这个密码。

第四步:设置反向代理 (推荐)

为了使用域名和 HTTPS 安全地访问服务,你需要设置反向代理。

  1. 打开群晖 “控制面板” -> “登录门户” -> “高级” -> “反向代理服务器”
  2. 点击 “新增”
  3. “常规” 设置中:
    • 来源:
      • 协议: HTTPS
      • 主机名: your-joplin-domain.com (你的域名)
      • 端口: 443
      • 勾选 启用 HSTS
    • 目的地:
      • 协议: HTTP
      • 主机名: localhost
      • 端口: 22300 (即 docker-compose.yml 中设置的端口)
  4. 保存设置。确保你已经在 “安全性” -> “证书” 中为该域名配置了 SSL 证书。

客户端配置

现在,你的 Joplin Server 已经运行起来了。打开你的 Joplin 桌面版或手机版客户端进行配置。

  1. 打开 Joplin 应用,进入 “设置”“首选项” (Preferences / Settings)。
  2. 找到 “同步” (Synchronization) 选项。
  3. “同步目标” (Synchronization target) 中,选择 Joplin Server
  4. 填写以下信息:
    • Joplin Server URL: 填写你设置的 APP_BASE_URL,例如 https://your-joplin-domain.com
    • Joplin Server 用户名: 填写日志中找到的管理员邮箱 admin@localhost
    • Joplin Server 密码: 填写日志中找到的初始密码。
  5. 点击 “检查同步配置” (Check synchronisation configuration)。如果一切正常,会提示成功。
  6. 保存设置,返回主界面,点击同步按钮,开始享受私有化笔记同步的乐趣!

重要提示: 首次登录后,请务必在 Joplin Server 的 Web 管理界面(直接访问你的服务地址)中修改管理员的默认邮箱和密码!


至此,你已经成功搭建了完全属于自己的 Joplin 笔记同步服务器。尽情享受安全、私密、便捷的笔记体验吧!