Перейти к содержанию

Vaultwarden (менеджер паролей)

Self-hosted Bitwarden-совместимый менеджер паролей для команды.

Доступ

URL https://vault.shivavpn.io
Admin panel https://vault.shivavpn.io/admin
Сервер km-tools01a (10.99.87.76)
Порт 8080 (контейнер → proxy 212.70.189.60 → TLS)
DNS vault.shivavpn.io → 212.70.189.61 (nginx proxy → 10.99.87.76:8080)
Данные /opt/vaultwarden/ (SQLite)

Назначение

Централизованное хранилище секретов команды. Организация: ShivaVPN.

Структура (Collections)

Collection Что хранится
VPN Providers MonoVM, LLHost, TheHosting, DataPacket, VDSina
Databases MySQL PROD/DEV, Redis
Infrastructure Admin Panel, Docker Registry, 3x-ui
GitLab & CI/CD API tokens, project tokens, GitHub PAT
Monitoring Grafana, Sentry, API tokens
Keycloak & Auth Keycloak admin, client secrets
Cloud Providers Yandex Cloud, VK Cloud
Ansible & DevOps Vault password, wiki credentials
Telegram Bots Bot tokens, webhook secrets

Что хранится (37 записей)

Все credentials перенесены в Vaultwarden (48 записей): - 5 VPN провайдеров с логинами - MySQL PROD/DEV с root и vpn паролями - Redis, Admin Panel, Docker Registry - GitLab API/project tokens, GitHub PAT - Grafana admin + API token, Sentry - Keycloak admin + client secrets - Yandex Cloud OAuth token - 3x-ui panel credentials (все серверы) - Ansible vault password - MkDocs wiki credentials

Клиенты

Vaultwarden совместим со всеми клиентами Bitwarden:

При настройке клиента указать Self-hostedhttps://vault.shivavpn.io

Команда

Организация: ShivaVPN

Email Имя Роль Зона ответственности
zarudesu@gmail.com Konstantin Makeikin Owner DevOps Lead, полный доступ
poslov.yaroslav@gmail.com Ярослав Послов Admin DevOps, инфраструктура
sealdontcry@gmail.com Михаил Admin DevOps
glebphedsec@gmail.com Михаил Толмачев Admin DevOps
m.daurtseff@gmail.com Марат Даурцев Admin DevOps
danm20011412@gmail.com Даниил Гончаров Admin DevOps L2, TG proxy

Роли

Роль Что может Кому назначать
Owner Всё + удаление орг + управление пользователями Только zardes
Admin CRUD записей, управление collections и members DevOps команда
Manager CRUD записей в назначенных collections Если будут не-DevOps
User Только чтение назначенных collections Саппорт, внешние

Добавление нового участника

  1. Участник регистрируется на https://vault.shivavpn.io (Create account)
  2. Owner/Admin: Admin Console → Members → Invite member → email → роль Admin → Save
  3. Участник логинится в web vault → видит приглашение
  4. Owner/Admin: Members → Options → Confirm

Без SMTP

Vaultwarden не отправляет email-уведомления. Приглашения видны только при логине в web vault.

Регистрация и вход

  1. Открыть https://vault.shivavpn.io
  2. Создать аккаунт (email + master password)
  3. В клиенте Bitwarden: Settings → Self-hosted → https://vault.shivavpn.io

Master Password

Master password НЕ восстанавливается. Если забыт — аккаунт потерян.

CLI доступ (API)

# Установка
npm install -g @bitwarden/cli

# Настройка self-hosted
bw config server https://vault.shivavpn.io

# Логин
bw login user@example.com

# Получить секрет
bw get password "Ansible Vault"

# Экспорт (для бэкапа)
bw export --format json

Администрирование

Admin panel

URL: https://vault.shivavpn.io/admin

Admin token хранится в /opt/vaultwarden/vaultwarden.env на сервере:

./scripts/ssh-internal.sh 10.99.87.76 "grep ADMIN_TOKEN /opt/vaultwarden/vaultwarden.env"

Конфигурация

Файл: /opt/vaultwarden/vaultwarden.env

Параметр Значение Описание
SIGNUPS_ALLOWED True Регистрация открыта
WEB_VAULT_ENABLED True Web-интерфейс
WEBSOCKET_ENABLED True Real-time sync
DATABASE_URL /data/db.sqlite3 SQLite

Ansible роль

Деплой/обновление через Ansible:

cd ansible/shiva-ansible
ansible-playbook -i inventory/servers.ini playbooks/vaultwarden.yml --vault-password-file .vault_pass

Бэкап

База данных: /opt/vaultwarden/db.sqlite3

# Ручной бэкап
./scripts/ssh-internal.sh 10.99.87.76 "cp /opt/vaultwarden/db.sqlite3 /opt/vaultwarden/db.sqlite3.bak-\$(date +%Y%m%d)"

Бэкап обязателен

SQLite — единственная копия всех паролей. Потеря = потеря всех секретов. Настроить cron для автоматического бэкапа.

Инфраструктура

Пользователь → vault.shivavpn.io (DNS)
            → 212.70.189.61 (dev-api-nginx, Let's Encrypt TLS)
            → 10.99.87.76:8080 (km-tools01a, vaultwarden container)
            → /opt/vaultwarden/db.sqlite3

vault.shiva-app.io

Устаревший альтернативный URL (через 212.70.189.60). Логин через него не работает — используй только vault.shivavpn.io.


См. также: Секреты · Ansible · Доступы и SSH