PassIt 1.25.0 介绍与选型指南
PassIt 自托管密码管理器的项目身份、零知识加密架构、功能边界与同类量化选型对比,与 Passbolt 严格区分;信息溯源官方仓库,查询日期 2026-10-24。
PassIt 1.25.0 介绍与选型指南
目标:讲清自托管密码管理器 PassIt 的项目身份、零知识加密架构、功能边界与同类选型差异,帮助读者判断"要不要用 PassIt";本文全部信息来自官方仓库与官方站点联网溯源(查询日期 2026-10-24),不含本地实测数据。
项目身份速览:PassIt 是 Burke Software and Consulting 开发的开源自托管密码管理器,源码托管在 GitLab(不是 GitHub),前后端均为 AGPL-3.0 许可,当前处于"维护模式"(不再接受新功能,但持续发布安全修复),最新稳定版 1.25.0 发布于 2026-10-16。注意:PassIt 与本平台已有专栏的 Passbolt 是两个完全不同的项目,名字相似但架构、技术栈、许可与商业形态均不同,选型时切勿混淆。
一、环境信息
本文是纯联网溯源的认知篇,未做任何本地部署实验;溯源环境与信息来源如下:
- 溯源日期:2026-10-24
- 官方站点:passit.io(含安装指南 /install/、安全模型页 /security-model/)
- 后端源码仓库:gitlab.com/passit/passit-backend(GitLab API 可匿名查询)
- 前端源码仓库:gitlab.com/passit/passit-frontend
- 项目主页仓库:gitlab.com/passit/passit
- 镜像发布:Docker Hub
passit/passit(stable 标签);GitLab Container Registryregistry.gitlab.com/passit/passit-frontend(精确版本标签) - 版本与提交信息:GitLab API
repository/commits、repository/tags、registry/repositories接口(查询日期 2026-10-24) - 社区数据:GitLab 项目接口 star_count 字段、shields.io GitHub star 徽章(查询日期 2026-10-24)
💡 说明:PassIt 的"最新稳定版"以前端仓库的 Git tag 为准(前后端同日协同发版);Docker Hub 上的
stable标签更新滞后于 GitLab Registry 的精确版本标签,选型时以 GitLab Registry tag 为准(详见《PassIt 1.25.0 Docker Compose 部署指南》镜像选型一节)。
二、软件概述
2.1 项目定位与发展沿革
Passit 官网(passit.io)对自己的定位是"Peace of mind for passwords"——一个在任意设备的浏览器里就能使用的密码管理器。项目由美国 Burke Software and Consulting(burkesoftware.com)开发并维护,自咨询业务收入自筹资金,没有风险投资背景。首次发布可追溯到 2016 年(后端仓库最早 tag v0.1.0 为 2017-03,官网与 Awesome-Selfhosted 收录时间均为 2016-2018 年间,来源:project-awesome.org、GitLab tags,查询日期 2026-10-24)。
后端仓库 README 明确了当前的项目状态(来源:gitlab.com/passit/passit-backend README.md,查询日期 2026-10-24):
"Passit is a finished and production ready application. It is in maintenance mode and does not accept new feature requests at this time."
即:Passit 是一个已完成、可上生产的成熟应用,处于维护模式,不再接受新功能请求。这与"停止维护"不同——GitLab 提交记录显示 2026-10-15/16 仍在合并安全修复(Tighten lockouts、Throttle email sending endpoints、Remove modulo bias from password generator 等),最新版本 1.25.0 正是这批安全修复的载体。
2.2 版本发布节奏(量化)
以下为前端仓库 Git tag 实查记录(来源:GitLab API repository/tags,查询日期 2026-10-24):
| 版本 | 发布日期 | 间隔 | 备注 |
|---|---|---|---|
| 1.18.2 | 2022-02-15 | - | 长期稳定版,Docker Hub 同步此版本号标签 |
| 1.19.0 | 2022-09-15 | 7 个月 | |
| 1.20.0 | 2022-11-28 | 2.5 个月 | |
| 1.21.0 | 2023-03-13 | 3.5 个月 | |
| 1.22.0 | 2023-07-26 | 4.5 个月 | |
| 1.23.0 | 2024-08-05 | 12 个月 | 维护模式放缓 |
| 1.23.1 | 2025-09-23 | 13.5 个月 | 小修版 |
| 1.24.0 | 2026-04-07 | 6.5 个月 | Docker Hub stable 镜像 2026-04-10 更新 |
| 1.25.0 | 2026-10-16 | 6 个月 | 安全修复批次,GitLab Registry 已有镜像 |
关键差异解读:PassIt 的版本节奏是"年更级别的小步慢跑",每次发版集中在安全修复与依赖升级;这与 Bitwarden/Passbolt 每月级的功能迭代节奏完全不同。对选型的含义是:PassIt 适合追求"稳定不折腾"、功能已够用的自托管用户,不适合期望持续获得新特性的团队。
2.3 开源许可与维护方
- 许可:前后端仓库 LICENSE 均为 GNU Affero General Public License v3.0(AGPL-3.0),来源:GitLab 仓库 LICENSE 文件,查询日期 2026-10-24。AGPL 要求修改后的服务端代码对外提供服务时同样开源,商用闭源改造受限。
- 维护方:Burke Software and Consulting,同时提供官方托管版 app.passit.io(付费订阅模式)。
- 资助渠道:Liberapay(README 徽章)。
三、核心架构
3.1 技术栈与运行形态
PassIt 采用"单后端服务 + 外部数据库"的最简形态(来源:GitLab 仓库 compose.yml、Dockerfile、passit.io/install/,查询日期 2026-10-24):
| 层 | 技术 | 说明 |
|---|---|---|
| 后端 | Python 3.14 + Django(Django REST Framework) | apps/access、secrets、mfa、organizations、ldap 等独立应用模块 |
| 应用服务器 | granian(ASGI) | bin/start.sh 以 granian 监听 8080 端口 |
| 前端 | Angular(TypeScript) | 构建为静态资源,由后端经 WhiteNoise 直接内嵌服务,无独立前端进程 |
| 数据库 | PostgreSQL(官方 compose 使用 postgres:17) | 唯一持久化存储,支持 hstore 扩展 |
| 缓存/任务队列 | Valkey(Redis 兼容) | 1.25.0 起默认必需(django_vcache + django_vtasks),默认地址 redis://redis:6379/1 |
| 加密 | libsodium.js(客户端) | Argon2id 密钥派生 + RSA 密钥对 + AES 对称加密 |
| 认证 | Session + Token(django-rest-knox) | Token 有效期 12 周;可选 MFA(django_rest_mfa,TOTP/FIDO2)与 LDAP |
💡 技术拓展:密码管理器的"零知识"加密方案不止一种,主流自托管产品对比——
方案 代表产品 原理 特点 libsodium(Argon2id + RSA/AES) PassIt 客户端用主密码派生密钥加密数据,RSA 密钥对实现分享 现代密码学原语组合,浏览器端性能好 OpenPGP(每用户 GPG 密钥环) Passbolt 每用户一对 GPG 密钥,秘密用接收者公钥逐个加密 密钥交换语义清晰,但客户端计算重 AES-256 位派生(PBKDF2) Bitwarden/Vaultwarden PBKDF2/Argon2 派生主密钥,AES 加密 Vault 生态最广,客户端矩阵最全 纯本地数据库加密 KeePass 系列 数据库文件级加密,无服务端 无同步/分享能力,最简信任模型 PassIt 采用 libsodium 方案:主密码只在客户端使用 Argon2id 派生密钥,服务端存储的私钥与秘密均为密文;用户间分享通过"用对方 RSA 公钥加密对称密钥"完成(来源:passit.io 首页与安全模型页、后端仓库 passit_sdk,查询日期 2026-10-24)。
3.2 数据流与信任模型
PassIt 的核心安全主张(来源:passit.io 首页"Security that works"一节,查询日期 2026-10-24):
- 所有密码学操作在客户端(浏览器)完成,使用成熟的 libsodium 做公钥加密、私钥加密与安全哈希;
- 服务端"无法读取数据,甚至不会在内存中保存关键数据"(后端 README 原文:"Have no way to read the data ever - not even storing critital data in ram");
- 即使攻击者拿下服务端,没有用户主密码也无法解密;
- 官方提供安全模型图示页 passit.io/security-model/。
对登录流程的语义(来源:后端仓库 apps/access/views.py 文档字符串,查询日期 2026-10-24):注册时客户端生成盐值(client_salt)、对主密码做 Argon2 派生哈希、生成 RSA 密钥对,仅把"哈希后的密码 + 公钥 + 加密的私钥"提交服务端;登录时服务端先返回 client_salt,客户端重新派生哈希后以 BASIC 方式换取 Token。服务端保存的密码字段还会再做一次服务端哈希(防撞库的二次防线),但它永远接触不到明文主密码。
3.3 客户端矩阵
| 客户端 | 形态 | 来源 |
|---|---|---|
| Web 应用 | 浏览器访问自建域名或 app.passit.io | passit.io |
| Chrome 扩展 | Chrome Web Store(pgcleadjbkbghamecomebcdakdmahkeh) | passit.io/install/ |
| Firefox 扩展 | addons.mozilla.org/addon/passit_io/ | passit.io/install/ |
| 移动端 | PWA(渐进式 Web 应用,Android/iOS 可安装到桌面) | passit.io |
| 桌面原生客户端 | 无 | — |
四、功能特性
以下特性清单来自官网"Features"一节与后端仓库模块结构(来源:passit.io、gitlab.com/passit/passit-backend,查询日期 2026-10-24):
- 密码与安全笔记存储:秘密(secret)由"可见数据"(URL、用户名等明文字段)与"加密数据"(密码、TOTP 种子等密文字段)两部分组成;
- 跨平台访问:Web + 浏览器扩展 + PWA,扩展支持自动填充;
- 离线读取:已加载的秘密在离线状态下仍可读取;
- CSV 导入导出:数据可迁入迁出(1.25.0 修复了导入失败时明文落日志的问题);
- 组与分享:自建实例上可创建组,把秘密分享给组成员,组密钥经成员公钥逐一分发;
- 组织模式:
IS_PRIVATE_ORG_MODE开启后全实例联系人共享,可配注册域名白名单; - MFA:django_rest_mfa 模块,支持 TOTP 与 FIDO2/WebAuthn(
FIDO_SERVER_ID配置); - LDAP:
LDAP_ENABLED开启后可对接企业目录认证(apps.ldap 模块); - 错误上报开关:Sentry 集成可选,客户端错误上报默认关闭(
ERROR_REPORT_DEFAULT默认 False); - 注册治理:邮箱确认(长短双码)、注册白名单(constance 数据库后端
REGISTRATION_WHITELIST)、登录限流(1.25.0 收紧了锁定策略)。
功能边界(同样重要):无桌面原生客户端、无移动原生 App(仅 PWA)、无密码健康报告/暗网监测等增值功能、无管理后台 UI(管理动作靠 Django admin 或环境变量,ENABLE_DJANGO_ADMIN 默认开启提供 /admin 页面)、暂不接受新功能请求。
五、快速开始(最小可用示例)
最快体验路径是官方托管版:访问 app.passit.io,点"Sign up for Passit"注册账号即可使用,无需部署(来源:passit.io 首页,查询日期 2026-10-24)。
自托管最小路径按官方安装指南(来源:passit.io/install/,查询日期 2026-10-24)概括为四步,完整逐条实测过程见《PassIt 1.25.0 Docker Compose 部署指南》:
- 准备一台支持 Docker 的 Linux 服务器、一个 PostgreSQL 数据库、一个 SMTP 邮件发送通道和一个带 SSL 的域名;
- 取官方
docker-compose.production.yml,至少改掉DATABASE_URL与 SMTP 相关环境变量; docker compose up -d启动,随后执行数据库迁移(docker compose run --rm web ./manage.py migrate);- 用 nginx 反向代理 + Let's Encrypt 证书对外提供 HTTPS,然后打开域名即可注册使用。
⚠️ 注意:官方安装文档写作时点较早。本平台部署篇实测(1.25.0,2026-10-24)发现两点文档滞后:一是 1.25.0 起 Valkey/Redis 是必需组件,官方 compose 未包含;二是
EMAIL_URL=consolemail://需同时显式设置EMAIL_BACKEND才能让确认邮件走控制台后端。请以部署篇实测结论为准。
六、适用场景与限制
6.1 适合的场景
- 个人/小团队的自托管密码库:一台小规格服务器(512MB 内存级即可,官方托管版起始规格即 512MB/1vCPU,来源 passit.io/install/)+ 一个域名即可跑起来;
- 重视零知识审计的合规环境:AGPL-3.0 全开源、代码量适中(前后端各一个仓库),安全模型可以完整审计,服务端无解密能力;
- 希望"装完就不用管"的长期节点:维护模式下功能稳定,升级仅涉及安全修复,变更风险低。
6.2 不适合的场景
- 需要桌面/移动原生客户端与丰富生态(Passkey 管理、SSH 代理、CI 集成等)——选 Bitwarden/Vaultwarden(见本平台《Vaultwarden 介绍与选型指南》);
- 需要团队密码协作的完整管理面(审批、汇报、目录同步、商业 SLA)——选 Passbolt(见本平台《Passbolt 5.16.0 介绍与选型指南》);
- 期望产品持续快速演进——PassIt 维护模式明示不接受新功能请求。
6.3 与 Passbolt 的严格区分(防混淆)
两者均为开源自托管密码管理器,且常被搜索混淆,逐项对比如下(来源:passit.io 与 passbolt.com 及本平台已有专栏,查询日期 2026-10-24):
| 维度 | PassIt | Passbolt |
|---|---|---|
| 开发方 | Burke Software and Consulting | Passbolt SA(比利时) |
| 源码托管 | GitLab | GitHub |
| 许可 | AGPL-3.0(单一版本) | AGPL-3.0 社区版 + 商业 Pro 版 |
| 技术栈 | Python/Django + Angular | PHP/CakePHP + React |
| 加密方案 | libsodium(Argon2id + RSA + AES),客户端完成 | OpenPGP 每用户密钥环,客户端完成 |
| 产品形态 | Web + 浏览器扩展 + PWA | Web + 浏览器扩展 + 桌面/移动客户端 |
| 面向人群 | 个人与轻量团队 | 团队协作(组织、角色、审计) |
| 维护状态 | 维护模式(安全修复) | 活跃开发(本平台收录版本 5.16.0) |
| 管理界面 | 无独立管理 UI(Django admin 兜底) | 有组织管理与商业支持 |
一句话总结:Passbolt 是"给团队的密码管理平台",PassIt 是"给自己的密码管理网站"。
七、同类选型对比(量化)
7.1 量化对比表
社区活跃度与基础数据均实查于 2026-10-24(GitLab star_count 取自 GitLab 项目 API;GitHub star 取自 shields.io 徽章接口;版本号取自各仓库 release/tag):
| 维度 | PassIt 1.25.0 | Passbolt 5.16.0 | Bitwarden(官方) | Vaultwarden | KeePassXC |
|---|---|---|---|---|---|
| 源码平台与星数 | GitLab:前端 41 + 后端 36 | GitHub 6.2k | GitHub 20k(bitwarden/server) | GitHub 70k(dani-garcia/vaultwarden) | GitHub 约 12k(keepassxreboot/keepassxc) |
| 许可 | AGPL-3.0 | AGPL-3.0 / 商业双轨 | AGPL-3.0(服务端)/ 商业云 | AGPL-3.0 | GPL-3.0 |
| 部署形态 | Docker(Python 单服务 + PostgreSQL + Valkey) | Docker(PHP 多服务 + MariaDB + Redis) | Docker 官方全家桶(多容器,重) | Docker 单二进制(轻) | 本地程序(无服务端) |
| 资源占用 | 低(官方托管 512MB 起步) | 中 | 高 | 低 | 无 |
| 加密模型 | libsodium 零知识 | OpenPGP 零知识 | AES-256 零知识 | 同 Bitwarden(兼容协议) | 本地库加密 |
| 分享/组 | 组分享(客户端分发组密钥) | 组织/文件夹/权限粒度细 | 组织/集合 | 组织/集合 | 无(可借 KeeShare) |
| MFA | TOTP + FIDO2(服务端可选) | TOTP(Pro 更全) | TOTP/FIDO2 等 | TOTP/WebAuthn | TOTP 生成(非登录 MFA) |
| 客户端矩阵 | Web/Chrome/Firefox/PWA | 扩展 + 桌面 + 移动 | 全平台原生 | 复用 Bitwarden 全平台客户端 | 桌面三平台 |
| 版本节奏 | 年更级(维护模式) | 月更级 | 周月更级 | 周更级 | 月更级 |
| 商业支持 | 官方托管订阅 | Passbolt SA 订阅 | Bitwarden 云/企业 | 无(社区) | 无 |
💡 说明:KeePassXC 星数为 shields.io 历史快照口径,精确到千位;其余数据同日实查。PassIt 之所以星数绝对值小,是因为 GitLab 社区体量远小于 GitHub,且项目处于维护模式,星数不直接等于安全质量——评估时应结合其完整可审计的加密实现与十年期代码演进。
7.2 选型建议("如果…则…")
- 如果你是个人或三五人小队,只要一个"网页打开就能用的加密密码库",能接受 PWA 代替原生 App → PassIt;
- 如果你需要团队级的密码协作、权限审批与商业支持 → Passbolt(见《Passbolt 5.16.0 介绍与选型指南》);
- 如果你想要最全的客户端生态与第三方集成(Passkey、SSH、CLI、CI)→ Bitwarden 官方或 Vaultwarden(见《Vaultwarden 介绍与选型指南》);
- 如果你的威胁模型完全不信任任何服务端、也不需要同步分享 → KeePassXC;
- 如果你在 PassIt 与 Passbolt 之间犹豫且没有团队协作硬需求 → PassIt 更轻更省心;反之选 Passbolt。
八、参考链接
- PassIt 官网(特性/安全模型/安装指南):https://passit.io/ (查询日期 2026-10-24)
- 安装指南:https://passit.io/install/
- 安全模型:https://passit.io/security-model/
- 后端仓库:https://gitlab.com/passit/passit-backend
- 前端仓库:https://gitlab.com/passit/passit-frontend
- 项目主页仓库:https://gitlab.com/passit/passit
- Docker Hub 镜像:https://hub.docker.com/r/passit/passit
- 后端 LICENSE(AGPL-3.0):https://gitlab.com/passit/passit-backend/-/blob/master/LICENSE
- 本平台部署实测篇:《PassIt 1.25.0 Docker Compose 部署指南》
- 本平台同类产品对比:《Passbolt 5.16.0 介绍与选型指南》、《Vaultwarden 介绍与选型指南》