自建 Vaultwarden 好几年了。官方的 macOS 桌面端基于 Electron,日常开着内存占几百兆,偶尔唤醒也有点迟钝;更关键的是 Safari 里的自动填充只能靠扩展,体验和系统原生有明显差距。 一直想找个轻快、原生的 Mac 客户端,后来索性自己动手写了一个,最近在主力机上用得很顺手,今天开源出来分享给自建密码库的朋友。 项目名叫 MyGo Vaultwarden 。 关于底层:为什么用 MyGo? 这个项目是用 egoist 开源的 MyGo ( github.com/egoist/mygo ) 框架构建的。 很多朋友写桌面端习惯用 Wails 或 Electron,本质上还是把前端网页打包进去。而 MyGo 走的是另一条路线: 后端是纯 Go :处理 Vaultwarden 复杂的网络请求、AES-GCM/Argon2 加解密、数据同步以及快照管理,性能和类型安全都让人放心。 UI 是纯原生 Native UI :直接绑定 macOS 的 Swift / AppKit,主窗口里 没有任何 WebView、HTML 或 JavaScript 。 极致轻量 :没有内嵌浏览器的开销,内存占用极小,原汁原味地遵循 macOS 的窗口、原生控件、菜单、快捷键和动画规范。 这也是我在实际写这个项目时觉得最爽的地方:既有 Go 写复杂业务的稳健,又能获得真正的 macOS 原生桌面质感。 核心功能与体验 系统级自动填充 :接入了 macOS 系统的「自动填充与密码(Credential Provider)」。在 Safari 或其它应用中无需常驻扩展,点选凭据并通过 Touch ID 认证即可填充。带有 TOTP 的条目,填充后还会自动把两步验证码复制到剪贴板。 完整的个人密码库 :支持登录、支付卡、身份、安全笔记、SSH 密钥等 8 种类型;支持收藏、文件夹、归档、回收站与批量管理; ⌘F 即时毫秒级搜索并展示网站图标。 日常开箱即用 :直连自建 Vaultwarden 服务器,支持两步验证(MFA / 恢复码)、Bitwarden 兼容的 JSON 导入导出、Send 以及设备登录审批,并带应用内更新。 安全性设计 做了哪些具体防护: 双沙盒隔离 :主应用与 AutoFill 扩展均开启 macOS App Sandbox。AutoFill 扩展在独立的沙盒进程中运行,只读取一份经过权限和策略过滤的 Login 最小投影(仅包含用户名、密码、URI 与 TOTP),不触碰完整的加密库。 本地静态加密 :完整密码库仅以受 Keychain 和主密码保护的 AES-GCM 本机快照形式落盘。 主动防御 :在向服务器发起任何网络请求前,本地会先检查并拒绝弱 KDF 参数(如低迭代的 PBKDF2);锁屏、睡眠或空闲 15 分钟后自动锁定。 写入安全 :网络异常导致的未知写入结果绝不会在后台静默重放,避免冲突覆盖。 更新验签 :自动更新包强制校验 Ed25519 签名与 SHA-256 摘要。 目前的局限(先排雷) 暂不支持组织管理 :当前版本只聚焦于个人密码库。组织条目能正常同步和解密,但组织管理(成员、集合、权限分配等管理后台功能)已延期到后续版本。 仅支持 macOS :没有跨平台计划。 未做第三方安全审计 :代码已开源,遵循 GPL-3.0 协议,我自己每天在作为主力使用;但对于极其重要的数据, 建议试用前先通过官方端导出备份一次 。 项目地址与讨论 GitHub: https://github.com/vfasky/mygo-vaultwarden 官网: https://mygo-vault.vfasky.com


  • 情报分类:服务器与云资源
  • 分类依据:内容涉及服务器、云资源或网络线路
  • 信息来源:服务器 / V2EX
  • 发布时间:2026/10/13 00:02:41