协作密码管理器
<div align="center"> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/teampass-logo2-login.png" width="110" alt="Teampass" /> # Teampass ### 整个团队都能信赖的自托管密码管理 文件夹级访问控制 · 经认证的 AES-256-GCM 加密 · 合规证据<br /> **你的机密永远不会离开你的基础设施。** **🌐 [teampass.net](https://teampass.net)** · **📖 [文档](https://documentation.teampass.net)** · **💬 [讨论](https://github.com/nilsteampassnet/TeamPass/discussions)** · **🐳 [Docker Hub](https://hub.docker.com/r/teampass/teampass)** <br /> [](https://github.com/nilsteampassnet/TeamPass/releases/latest) [](LICENSE.md) [](https://www.php.net/) [](https://hub.docker.com/r/teampass/teampass) [](https://github.com/nilsteampassnet/TeamPass) [](https://github.com/nilsteampassnet/TeamPass/actions/workflows/codeql.yml) [](https://github.com/nilsteampassnet/TeamPass/actions/workflows/docker-publish.yml) [](https://github.com/nilsteampassnet/TeamPass/security/advisories) [](https://github.com/sponsors/nilsteampassnet) </div> --- ## 目录 - [关于](#about) - [适用对象](#who-its-for) - [安全性](#security) - [功能特性](#features) - [快速开始](#get-started) - [文档](#documentation) - [语言](#languages) - [社区](#community) - [支持 Teampass](#support-teampass) - [许可证](#license) --- ## 关于 **Teampass 是一个由你自己运行的开源凭据保险库。** 无需创建账户,幕后没有公司持有你的数据——只有运行在你自己服务器上的 PHP/MySQL 应用,具备文件夹级访问控制、每用户加密密钥和完整的审计追踪。 它自 2009 年起持续构建和维护,驱动力来自真实团队实际遇到的问题:谁应该看到哪条凭据、如何向审计员证明这一点,以及如何阻止密码散落在聊天记录和电子表格中。 <div align="center"> <img src="https://teampass.net/images/portfolio/tp3_sw_1.png" width="820" alt="Teampass interface" /> </div> <details> <summary><b>📸 更多截图</b></summary> <br /> **条目与机密** <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_items_1.png" width="420" alt="Item list" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_items_2.png" width="420" alt="Item detail" /> **文件夹与角色** <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_subfolders_1.png" width="420" alt="Folder tree" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_features_roles_1.png" width="420" alt="Roles" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_features_roles_3.png" width="420" alt="Role rights" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_features_roles_5.png" width="420" alt="Role assignment" /> **身份验证与 MFA** <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_auth_mfa_1.png" width="420" alt="MFA setup" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_auth_oauth2_1.png" width="420" alt="OAuth2 settings" /> **加密密钥** <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_keys_1.png" width="420" alt="Key management" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_keys_5.png" width="420" alt="Key regeneration" /> **搜索、导出、一次性查看** <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_settings_keyword_search.png" width="420" alt="Keyword search" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_export_1.png" width="420" alt="Export" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_otv_1.png" width="420" alt="One-time view" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_otp_1.png" width="420" alt="TOTP" /> **后台任务** <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_tasks_04.png" width="420" alt="Tasks" /> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/settings_tasks_options_01.png" width="420" alt="Task settings" /> </details> --- ## 适用对象 <table> <tr> <td width="33%" valign="top"> ### 🏠 个人与 Homelab ***真正拥有你的保险库。*** - 可运行在 Raspberry Pi 或 5 欧元的 VPS 上 - 个人文件夹使用你自己的密钥加密 - 从 Bitwarden、LastPass、1Password 或 KeePassXC 导入 - 永久免费,无需注册 </td> <td width="33%" valign="top"> ### 👥 团队与中小企业 ***别再在聊天中共享密码。*** - 用文件夹和角色取代共享文档 - 记录谁在何时访问了什么 - 面向客户和承包商的 Secure Send - 用于日常自动填充的浏览器扩展 </td> <td width="33%" valign="top"> ### 🏛️ 企业与受监管行业 ***证明你的访问控制,而不只是声称拥有。*** - 具有不可变决策的访问重新认证活动 - 合规报告与证据导出 - 支持嵌套组的 LDAP/AD、OAuth2 SSO - 数据分类与归属 </td> </tr> </table> --- ## 安全性 ### 你可以向审计员描述的加密 机密使用 **AES-256-GCM** 加密,采用随机 nonce 和每条机密独立的 salt,并基于 **256 位对象密钥**。用于解锁它们的私钥通过 **PBKDF2-SHA256、600 000 次迭代** 从你的密码派生。 - **认证加密** — 篡改会被检测到,而不是被静默解密 - **每用户密钥分发** — 每个用户都持有每个对象密钥的 RSA 封装副本,因此删除账户会真正撤销访问权限,而不只是隐藏一个按钮 - **惰性迁移** — 格式升级在访问时进行,无需维护窗口 <div align="center"> <img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/docs/_media/tp3_encryption_model.webp" width="700" alt="Teampass encryption model" /> </div> ### 透明而非沉默 > 一个报告没有漏洞的密码管理器,并不等于一个没有漏洞的密码管理器。 发现的问题会被分类、修复,并作为带有 CVE 标识符的 GitHub Security Advisories 发布。 - 🔒 [安全策略与报告方式](https://github.com/nilsteampassnet/teampass/blob/master/SECURITY.md) - 📋 [已发布的公告](https://github.com/nilsteampassnet/TeamPass/security/advisories) - 🛡️ [安全加固指南](https://documentation.teampass.net/#/install/security-hardening) **发现了漏洞?** 请通过 [GitHub Security Advisories](https://github.com/nilsteampassnet/TeamPass/security/advisories/new) 私下报告——绝不要提交公开 issue。 --- ## 功能特性 <details> <summary><b>🗂️ 文件夹与角色访问控制</b></summary> <br /> - [文件夹](https://documentation.teampass.net/#/features/folders) — 无限嵌套,按文件夹设置密码复杂度规则 - [角色](https://documentation.teampass.net/#/features/roles) — 按角色授予访问权限,而不是逐个用户 - [权限](https://documentation.teampass.net/#/features/rights) — 读取、写入、禁止编辑、禁止删除,按最小权限优先原则解析 - [用户](https://documentation.teampass.net/#/features/users) — 在角色之上按用户覆盖 - 其他任何人都无法读取的个人文件夹,包括管理员 </details> <details> <summary><b>🔐 认证加密</b></summary> <br /> - [加密模型](https://documentation.teampass.net/#/install/encryption) — 密钥如何派生、封装和分发 - [加密改进](https://documentation.teampass.net/#/install/encryption-improvements) — AES-256-GCM 格式及其惰性迁移 - [密钥管理](https://documentation.teampass.net/#/features/keys) — 重新生成、恢复、按用户修复密钥 </details> <details> <summary><b>📊 安全态势</b></summary> <br /> - [安全态势](https://documentation.teampass.net/#/features/security-posture) — 针对弱密码、重复使用和已泄露凭据的个人评分,以及无需发送密码的 Have I Been Pwned 检查 - [密码续期](https://documentation.teampass.net/#/features/renewal) — 过期策略与提醒 - [微学习](https://documentation.teampass.net/#/features/micro-learning) — 应用内提示,而不是一年一次的幻灯片 </details> <details> <summary><b>🏛️ 治理与审计</b></summary> <br /> - [访问审查](https://documentation.teampass.net/#/manage/access-reviews) — 具有不可变决策的重新认证活动 - [合规报告](https://documentation.teampass.net/#/manage/compliance-reports) — 可交给审计员的证据 - [轮换跟踪](https://documentation.teampass.net/#/manage/rotation-tracking) — 轮换了什么、何时、由谁执行 - [离职风险](https://documentation.teampass.net/#/features/leaver-risk) — 即将离职的用户可能仍然知道什么 - [数据分类](https://documentation.teampass.net/#/features/classification) — 归属与敏感度标签 </details> <details> <summary><b>🪪 身份集成</b></summary> <br /> - [身份验证](https://documentation.teampass.net/#/features/authentication) — 本地、支持嵌套组的 LDAP/AD、OAuth2 / SSO - 多因素:TOTP(Google Authenticator)、Duo Security、YubiKey、AGSES - [网络 ACL](https://documentation.teampass.net/#/manage/network-acl) — 按 IP 范围限制访问 - [会话管理](https://documentation.teampass.net/#/misc/session-management) — 超时、并发会话、Redis 支持的存储 </details> <details> <summary><b>🤖 自动化</b></summary> <br /> - [REST API](https://documentation.teampass.net/#/api/api-basic) — JWT 认证、OpenAPI 3.1 规范、Bash 和 PowerShell 客户端 - [浏览器扩展](https://documentation.teampass.net/#/misc/extension) — 自动填充、捕获、一键自动配置 - [后台任务](https://documentation.teampass.net/#/manage/tasks) — 密钥分发、通知、维护 - [实时协作](https://documentation.teampass.net/#/features/collaboration) — WebSocket 同步与编辑锁 - [备份](https://documentation.teampass.net/#/features/backups) — 定时加密数据库转储 </details> <details> <summary><b>📦 导入与导出迁移</b></summary> <br /> - [导入](https://documentation.teampass.net/#/features/import) — Bitwarden、LastPass、1Password、KeePassXC、CSV - [导出](https://documentation.teampass.net/#/features/export) — CSV、PDF,以及自包含的加密离线 HTML 保险库 - 无锁定:它是你的数据库,在你的服务器上,采用 GPL-3.0 </details> <details> <summary><b>⚡ 日常效率</b></summary> <br /> - [搜索](https://documentation.teampass.net/#/features/search) — 跨标签、描述、标签和自定义字段 - [命令面板](https://documentation.teampass.net/#/features/command-palette) — 键盘优先导航 - [收藏夹](https://documentation.teampass.net/#/features/favourites) 与最近条目的快速访问 - [自定义字段](https://documentation.teampass.net/#/features/custom-fields) — 可单独加密,按角色限制 - [知识库](https://documentation.teampass.net/#/features/knowledge-base) 与 [通知中心](https://documentation.teampass.net/#/features/notification-center) - 一次性查看链接和用于在保险库外共享的 Secure Send </details> --- ## 快速开始 ### 要求 | | | |---|---| | **数据库** | MySQL 5.7+ 或 MariaDB 10.7+ | | **PHP** | 8.2 或更新版本(已针对 8.3 测试) | | **必需扩展** | `openssl` `mysqli` `mbstring` `bcmath` `iconv` `xml` `gd` `curl` `gmp` — 以及用于 LDAP/AD 的 `ldap` | | **推荐扩展** | `apcu`(配置缓存) · `opcache`(性能) · `redis`(HA 会话) · `pcntl` + `posix`(WebSocket 守护进程) | Teampass 跟随 PHP 的活跃支持。强烈建议运行最新的稳定版 PHP,以兼顾安全性和性能。 ### 🐳 Docker ```bash docker run -d --name teampass \ -p 8080:80 \ -v teampass_data:/var/www/html \ teampass/teampass:latest ``` 镜像会发布到两个注册表: - Docker Hub — `teampass/teampass` - GitHub Container Registry — `ghcr.io/nilsteampassnet/teampass` 📖 [Docker 指南](https://github.com/nilsteampassnet/teampass/blob/master/docs/DOCKER.md) · [将现有安装迁移到 Docker](https://github.com/nilsteampassnet/teampass/blob/master/docs/DOCKER-MIGRATION.md) ### 🖥️ 裸机部署(生产环境推荐) 直接安装在 PHP/MySQL 服务器上可获得最佳性能,并对环境拥有最大控制权。 - 📖 [官方安装指南](https://documentation.teampass.net/#/install/installation) - 🔄 [升级指南](https://documentation.teampass.net/#/install/upgrade) - 🔑 [文件权限](https://documentation.teampass.net/#/install/file-permissions) - 🎥 [视频教程](https://youtu.be/eXieWAIsGzc?feature=shared) --- ## 文档 | | | |---|---| | 📖 **[完整文档](https://documentation.teampass.net)** | 安装、功能、管理 | | 🚀 **[安装](https://documentation.teampass.net/#/install/installation)** | 分步完成首次设置 | | 🔄 **[升级](https://documentation.teampass.net/#/install/upgrade)** | 在版本之间迁移 | | 🛡️ **[安全加固](https://documentation.teampass.net/#/install/security-hardening)** | 生产环境检查清单 | | ⚙️ **[性能](https://documentation.teampass.net/#/install/performance)** | PHP-FPM、缓存、调优 | | 🔌 **[REST API](https://documentation.teampass.net/#/api/api-basic)** | 端点、JWT 认证、客户端 | | 🧩 **[浏览器扩展](https://documentation.teampass.net/#/misc/extension)** | 设置与使用 | | 🩺 **[故障排除](https://documentation.teampass.net/#/misc/troubleshooting)** | 出问题时的应对方法 | --- ## 语言 Teampass 提供 **25 种语言**,由社区翻译。 <table> <tr> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/us.png" width="16" alt="" /> 英语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/fr.png" width="16" alt="" /> 法语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/de.png" width="16" alt="" /> 德语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/es.png" width="16" alt="" /> 西班牙语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/it.png" width="16" alt="" /> 意大利语</td> </tr> <tr> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/pr.png" width="16" alt="" /> 葡萄牙语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/br.png" width="16" alt="" /> 葡萄牙语(巴西)</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/nl.png" width="16" alt="" /> 荷兰语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/ru.png" width="16" alt="" /> 俄语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/ua.png" width="16" alt="" /> 乌克兰语</td> </tr> <tr> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/pl.png" width="16" alt="" /> 波兰语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/cz.png" width="16" alt="" /> 捷克语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/hu.png" width="16" alt="" /> 匈牙利语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/ro.png" width="16" alt="" /> 罗马尼亚语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/bg.png" width="16" alt="" /> 保加利亚语</td> </tr> <tr> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/gr.png" width="16" alt="" /> 希腊语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/tr.png" width="16" alt="" /> 土耳其语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/se.png" width="16" alt="" /> 瑞典语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/no.png" width="16" alt="" /> 挪威语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/ee.png" width="16" alt="" /> 爱沙尼亚语</td> </tr> <tr> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/catalonia.png" width="16" alt="" /> 加泰罗尼亚语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/cn.png" width="16" alt="" /> 中文</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/ja.png" width="16" alt="" /> 日语</td> <td><img src="https://raw.githubusercontent.com/nilsteampassnet/teampass/master/public/assets/images/flags/vi.png" width="16" alt="" /> 越南语</td> <td>🇸🇦 阿拉伯语 <sub>(进行中)</sub></td> </tr> </table> 翻译在 POEditor 上进行管理——你贡献的几条字符串就能带来很大帮助。 [](https://poeditor.com/join/project?hash=0vptzClQrM) --- ## 社区 ### 贡献 非常欢迎任何形式的贡献。Fork 仓库,进行修改,然后提交 pull request——开发环境搭建、编码规范和分支约定请参阅 [CONTRIBUTING.md](https://github.com/nilsteampassnet/teampass/blob/master/.github/CONTRIBUTING.md),协作方式请参阅 [CODE_OF_CONDUCT.md](https://github.com/nilsteampassnet/teampass/blob/master/CODE_OF_CONDUCT.md)。 [](https://github.com/nilsteampassnet/TeamPass/compare) ### 报告 bug 如果某些功能未按预期工作,请提交工单。请附上复现步骤、服务器配置,以及来自 **管理 → Bug 图标(左下角)** 的诊断报告。 [](https://github.com/nilsteampassnet/TeamPass/issues/new/choose) ### 提问 问题、部署建议和想法请发布到 Discussions,而不是 issue 跟踪器。 [](https://github.com/nilsteampassnet/TeamPass/discussions) ### 贡献者 Teampass 能有今天,要感谢这些人。 [](https://github.com/nilsteampassnet/TeamPass/graphs/contributors) ### Star 历史 [](https://star-history.com/#nilsteampassnet/TeamPass&Date) --- ## 支持 Teampass Teampass 是免费的,采用 GPL-3.0 许可,自 2009 年以来一直由一个人维护。它背后没有公司——这正是它的意义所在,也正是支持如此重要的原因。 ### 赞助资金用于何处 - **安全工作** — 分类处理报告、修复问题,并发布带有 CVE 的安全公告 - **版本发布** — 测试、升级路径,以及让旧安装能够继续向前迁移 - **文档** — documentation.teampass.net 上的指南 - **翻译** — 协调 25 种语言 - **基础设施** — Docker 镜像、CI 以及项目网站 ### 成为赞助者 目标是 **每月 100 位赞助者**。每一档都有帮助,而小额定期赞助帮助最大,因为它能让这项工作更具可预测性。 [](https://github.com/sponsors/nilsteampassnet) [](https://www.paypal.com/donate/?hosted_button_id=XUVWYJ7J92X6L) ### 赞助者 衷心感谢每一位赞助这项工作的人——你们让 Teampass 对其他人保持免费。 [](https://github.com/sponsors/nilsteampassnet) ### 商业支持 赞助为免费服务器提供资金。浏览器扩展和专业服务为路线图提供资金。 | | | |---|---| | **Pro 扩展** | 浏览器自动填充、捕获和钓鱼防护 — 每年 €49 起,30 天试用 | | **服务** | 功能开发、部署协助、优先处理 — 按项目报价 | [](https://teampass.net/pricing.html) --- ## 许可证 Teampass 基于 **[GNU General Public License v3.0](https://github.com/nilsteampassnet/teampass/blob/master/LICENSE.md)** 发布。 你可以自由使用、研究、修改和再分发它——包括商业用途——前提是衍生作品保持相同的许可证。 📋 [依赖许可证合规报告](https://github.com/nilsteampassnet/teampass/blob/master/LICENSE_COMPLIANCE_REPORT.md) --- <div align="center"> <img src="https://teampass.net/images/madeinfrance.png" width="90" alt="Made in France" /> **自 2009 年起由 [Nils Laumaillé](mailto:[email protected]) 构建和维护。** Copyright © 2009-2026 Nils Laumaillé <br /> [](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md) </div>