
Совместный менеджер паролей
<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 или VPS за €5 - Личные папки зашифрованы вашим собственным ключом - Импорт из 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> ### Прозрачность вместо молчания > Менеджер паролей, который не сообщает об уязвимостях, — это не менеджер паролей, у которого их нет. Находки проходят триаж, исправляются и публикуются в виде GitHub Security Advisories с идентификаторами CVE. - 🔒 [Политика безопасности и как сообщить](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` для LDAP/AD | | **Рекомендуемые расширения** | `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="" /> Португальский (BR)</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) --- ## Сообщество ### Участие в разработке Мы рады любым вкладам. Сделайте форк репозитория, внесите изменения, затем откройте 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) ### Сообщения об ошибках Если что-то работает не так, как должно, создайте тикет. Пожалуйста, укажите шаги воспроизведения, конфигурацию вашего сервера и диагностический отчёт из **Администрирование → Иконка ошибки (внизу слева)**. [](https://github.com/nilsteampassnet/TeamPass/issues/new/choose) ### Вопросы Вопросы, советы по развёртыванию и идеи следует размещать в Discussions, а не в трекере задач. [](https://github.com/nilsteampassnet/TeamPass/discussions) ### Участники Teampass существует благодаря этим людям. [](https://github.com/nilsteampassnet/TeamPass/graphs/contributors) ### История звёзд [](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 Extension** | Автозаполнение в браузере, захват и защита от фишинга — от €49/год, 30-дневный пробный период | | **Услуги** | Разработка функций, помощь в развёртывании, приоритетная обработка — стоимость по договорённости | [](https://teampass.net/pricing.html) --- ## Лицензия Teampass выпускается под **[GNU General Public License v3.0](https://github.com/nilsteampassnet/teampass/blob/master/LICENSE.md)**. Вы можете свободно использовать, изучать, изменять и распространять его — в том числе в коммерческих целях — при условии, что производные работы остаются под той же лицензией. --- [Read more](https://github.com/nilsteampassnet/teampass)