Turtl Server 完全指南:自托管端到端加密笔记同步服务器能做什么? Turtl Server 完全指南自托管端到端加密笔记同步服务器能做什么【免费下载链接】serverThe new Turtl server项目地址: https://gitcode.com/gh_mirrors/server14/serverTurtl Server是一个基于 Node.js 的免费自托管服务器专为 Turtl 端到端加密笔记客户端提供账号管理、数据存储、多端同步与权限共享能力。想让自己的笔记只属于自己把它部署在自己的机器上几行命令即可完成。它是什么为什么值得自托管Turtl 采用**端到端加密E2EE**架构笔记内容、密钥都在客户端加密后才上传服务器端只存密文。换句话说即便服务器被入侵你的笔记内容也无法被直接读出。Turtl Server 本身是一个轻量的 Express 应用默认监听8181 端口配套 PostgreSQL 数据库存储用户、笔记、空间等元数据。项目以 AGPL-3.0 协议开源你可以自由修改、二次分发许可证见 LICENSE。核心能力一览源自项目说明 README.md功能说明对应模块‍ 账号管理注册、登录、邮箱确认、注销controllers/users.js 数据存储笔记、文件附件的托管models/note.js、controllers/files.js 同步增量 / 全量同步多端实时一致controllers/sync.js 权限与共享团队空间、邀请成员、转让所有者controllers/spaces.js核心功能拆解同步机制如何工作同步是自托管笔记服务器最关键的环节。Turtl Server 提供了三种同步端点见 controllers/sync.js增量同步GET /sync客户端带上上次同步 ID服务器只返回变化的记录省电省流量适合轮询全量同步GET /sync/full设备首次登录或本地数据丢失时一键拉取整个资料库批量同步POST /sync客户端把一批本地变更按顺序提交服务器严格按序应用——比如先同步密钥链、再同步板Board这类有先后依赖的操作失败时会返回成功/失败明细方便客户端重试。⚡默认单次批量上限为 32 条记录config.sync.max_bulk_sync_records防止异常客户端刷爆服务器。团队协作空间、邀请与文件空间Spaces创建共享空间邀请成员、调整角色、转让所有者全部由controllers/spaces.js提供的 REST 接口完成密钥链Keychain共享时通过models/keychain.js管理每个成员持有的解密密钥保证谁能解密密钥谁才能看到内容文件附件笔记附件支持本地磁盘或 S3 兼容对象存储controllers/files.js通过流式上传/下载大文件也不占满内存。最快部署方法Docker Compose 一键安装无需手动装 Node 和 Postgres官方已提供编排文件 docker-compose.yml1️⃣ 克隆仓库git clone https://gitcode.com/gh_mirrors/server14/server cd server2️⃣ 一条命令启动同时拉起 PostgreSQL 11 与服务器服务就绪后等待健康检查通过docker-compose up✅ 完成后访问http://localhost:8181即可看到{greeting:Hi.}说明服务已就绪。⚠️ 注意直接退出容器会丢失数据。生产环境请将 PostgreSQL 数据挂载到 Docker 卷中持久化。用环境变量覆盖默认配置Docker 下可覆盖任意配置项变量名 TURTL_前缀 大写化的 YAML 路径。例如要修改app.api_url就设置TURTL_APP_API_URL。docker-compose.yml 中已示例了数据库连接与TURTL_APP_SECURE_HASH_SALT的写法。手动部署传统安装四步走如果不想用 Docker要求 Node.js ≥ 8、PostgreSQL ≥ 9.6且已建好专用用户与数据库mkdir turtl cd turtl git clone https://gitcode.com/gh_mirrors/server14/server cd server npm install cp config/config.yaml.default config/config.yaml接着打开config/config.yaml重点配置三处完整模板见config/config.yaml.default配置项作用db.connstrPostgreSQL 连接串账号/库名/密码uploads/s3附件走本地磁盘还是 S3 对象存储app.secure_hash_salt务必改成自己的长随机字符串用于密码哈希默认值仅测试可用app.api_url客户端访问的 API 地址末尾不要带斜杠最后初始化并启动mkdir plugins # 按 config.yaml 中 plugins.plugin_location 创建 ./scripts/init-db.sh # 创建数据库表结构scripts/init-db.sh node server.js启动时服务器会依次加载 users、sync、spaces、files 等控制器与插件逻辑见 server.js并在日志中打印监听地址。插件架构邮件、统计、支付都能插进来Turtl Server 刻意不把发邮件收款埋点写死在主程序里而是通过插件架构扩展启动时扫描插件目录加载每个插件的main.js注册逻辑见helpers/plugins.js。邮件插件示例example-plugins/email/main.js用 nodemailer 实现邀请邮件、确认邮件发送把 SMTP 地址填入config.yaml的plugins.email.endpoint并设enabled: true即可启用你同样可以为统计、支付处理等能力编写自己的插件而不必改动核心代码。小结谁适合部署 Turtl Server✅ 重视隐私、拒绝把笔记托管给第三方的个人用户✅ 想体验自托管端到端加密、研究同步协议实现方式的开发者✅ 需要团队共享加密笔记的小团队空间 邀请 密钥共享。只需一台能跑 Docker 的机器 一个 PostgreSQL10 分钟就能拥有属于自己的加密笔记同步服务器。✨【免费下载链接】serverThe new Turtl server项目地址: https://gitcode.com/gh_mirrors/server14/server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考