NAS+Docker+PostgreSQL:打造全平台同步的私有Joplin笔记服务器

张开发
2026/4/12 6:36:16 15 分钟阅读

分享文章

NAS+Docker+PostgreSQL:打造全平台同步的私有Joplin笔记服务器
1. 为什么选择私有化部署Joplin笔记服务每次打开印象笔记时弹出的会员订阅弹窗或是发现OneDrive同步又卡在某个小文件时相信很多朋友都动过自建笔记服务的念头。三年前我也被这些问题困扰直到在GitHub上发现了这个宝藏项目——Joplin一个真正全平台开源且支持端到端加密的Markdown笔记工具。相比商业笔记软件私有化部署的Joplin Server有三大不可替代的优势数据完全自主掌控所有笔记数据都存在自己的NAS上不用担心服务商突然停止运营无终端数量限制我在手机、平板、办公室电脑和家用台式机四台设备间同步毫无压力零成本持续使用不用再为高级会员功能付费一次部署永久免费实测下来基于PostgreSQL的Joplin Server同步速度比WebDAV方案快3倍以上。我的2000多条笔记含图片附件首次同步只用了不到10分钟而之前用OneDrive同步相同内容需要半小时以上。2. 部署前的硬件准备2.1 NAS设备选型建议我用的是极空间Z44盘位但任何支持Docker的NAS都能完成部署。这里分享几个关键指标内存建议≥4GBPostgreSQL比较吃内存存储笔记本体占用不大但附件多的建议单独挂载SSD处理器x86架构优先如J4125ARM设备可能遇到镜像兼容性问题小贴士如果NAS性能较弱可以考虑将数据库部署在家用PC上NAS只运行Joplin应用容器。2.2 数据库方案对比测试过三种数据库后我的推荐优先级是PostgreSQL同步速度最快支持并发写入MySQL兼容性好但性能稍差SQLite仅适合测试环境正式使用容易锁库# 查看NAS剩余资源 df -h # 磁盘空间 free -m # 内存使用3. 一步步搭建Joplin Server3.1 数据库容器部署先创建专用网络和存储卷docker network create joplin-net docker volume create pg_data用这个命令启动PostgreSQL容器记得修改密码docker run -d \ --name joplin-db \ --network joplin-net \ -v pg_data:/var/lib/postgresql/data \ -e POSTGRES_PASSWORDyour_strong_password \ -e POSTGRES_USERjoplin \ -e POSTGRES_DBjoplin \ -p 5432:5432 \ postgres:13-alpine3.2 Joplin服务端配置这个docker-compose.yml模板可直接使用version: 3 services: joplin: image: joplin/server:latest depends_on: - joplin-db ports: - 22300:22300 environment: - APP_PORT22300 - APP_BASE_URLhttp://你的NAS内网IP:22300 - DB_CLIENTpg - POSTGRES_HOSTjoplin-db - POSTGRES_DATABASEjoplin - POSTGRES_USERjoplin - POSTGRES_PASSWORDyour_strong_password networks: - joplin-net networks: joplin-net: external: true启动后访问http://NAS_IP:22300用默认账号adminlocalhost/admin登录务必第一时间修改密码4. 多终端同步实战技巧4.1 各平台客户端配置Windows/Mac官网下载安装包后在设置 同步里选择Joplin ServeriOS/Android应用商店安装后同步配置与桌面端相同Linux通过AppImage或snap安装同步配置关键点同步目标选「Joplin Server」URL填http://NAS_IP:22300邮箱密码用web端创建的非管理员账号4.2 外网访问方案通过NAS自带的反向代理或内网穿透实现域名解析到家中公网IPNAS配置DDNS服务设置反向代理将22300端口映射到443端口修改APP_BASE_URL为HTTPS域名# Nginx示例配置 location /joplin { proxy_pass http://localhost:22300; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }5. 高级功能与故障排查5.1 插件生态挖掘这些插件让我的工作效率翻倍Quick Links快速创建笔记关联Note Tabs多笔记分页查看Outline自动生成文档大纲 安装方法客户端点击工具 插件 浏览插件库5.2 常见问题解决同步冲突关闭客户端的「避免上传冲突」选项附件上传失败检查storage目录权限时间不同步在docker-compose中添加volumes: - /etc/localtime:/etc/localtime:ro environment: - TZAsia/Shanghai记得定期备份PostgreSQL数据docker exec -t joplin-db pg_dump -U joplin joplin joplin_backup.sql这套方案稳定运行两年多即使疫情期间在家办公跨设备协作也从未出过问题。最近给数据库加了SSD缓存盘后同步速度又快了一倍。如果你也厌倦了商业笔记软件的种种限制不妨试试这个完全自主的知识管理方案。

更多文章