Bitwarden

💡 Quick Navigation

Bitwarden is one of the most sensitive services in my Home Lab. It does not just store normal application settings. It stores the credentials, keys, recovery codes, and account entry points that many other services depend on.

In the actual deployment, I use a Bitwarden-compatible Vaultwarden server. This public note still calls it Bitwarden because the daily user experience is mainly the Bitwarden apps, browser extension, and Web Vault.

My goal is not self-hosting for its own sake. The goal is to make password management controlled, backed up, and recoverable. Once a password vault is online, the important question is not only whether I can log in today. The important questions are whether the data is safe, whether recovery works, and whether family members know what to do when something breaks.

Important

This is a public note, so it intentionally does not include real domains, admin URLs, internal addresses, ports, usernames, emails, database names, environment variables, SMTP settings, TOTP seeds, recovery codes, emergency access contacts, or any secrets.


🎯 Why I Use It

Passwords need centralized management, not memory and reuse

As the number of accounts grows, relying on memory usually leads to two bad outcomes: weak passwords, or the same password reused everywhere. If one site leaks credentials, reused passwords can quickly affect unrelated services.

A password manager fixes the workflow:

  • Every site can use a unique high-strength password
  • I do not need to memorize every credential
  • Weak, reused, and old passwords can be cleaned up gradually
  • Login data, recovery codes, and security notes can stay in one managed place

I treat Bitwarden as part of basic security hygiene. It does not magically make everything secure, but it makes better security habits easier to maintain over time.

Data ownership and usability both matter

Avoiding commercial password managers gives more control, but poor sync or poor backups can make the result riskier. For me, Bitwarden is the practical middle ground: I keep the cross-device workflow while keeping the core data inside my own infrastructure.

The important questions are:

  • Who needs access?
  • Which devices need to sync?
  • How do I log in to critical services if the vault is unavailable?
  • Can backups actually be restored?
  • Are the master password, 2FA, and recovery paths protected properly?

🧱 Role in the Home Lab

flowchart TD
    U[User / Device] --> CLIENT[Web Vault / Browser Extension / Mobile App]
    CLIENT --> NPM[Nginx Proxy Manager]
    NPM --> BW[Bitwarden]
    BW --> DB[(Database / Vault Metadata)]
    BW --> DATA[(App Data / Attachments)]

Bitwarden lives in the OMV App Layer. It does not need to sit close to large media datasets like Immich, and it is not part of the storage layer like TrueNAS. It fits better in the environment where Docker services are centrally managed, backed up, and updated.

The browser extension, mobile app, and Web Vault all use the same HTTPS entry point. Requests reach nginx-proxy-manager first, then NPM forwards them to the backend Bitwarden service.

Deployment summary

ItemCurrent approach
PlacementOMV / Docker
Public entryHTTPS through nginx-proxy-manager
Main dataVault data, organization data, attachments, configuration state
Outer protectionCurrently no authelia forward-auth; relies on the vault’s own login, 2FA, and HTTPS
Operations focusBackup, restore, upgrades, 2FA, account recovery

Warning

A password vault should not be monitored only by checking whether the container is running. I also need to verify login, sync, browser extensions, mobile apps, backups, and restore procedures.

Note

The current Bitwarden / Vaultwarden entry does not use Authelia forward-auth. The Bitwarden browser extension and mobile apps need to use their own API, token, and sync flows directly; putting a generic forward-auth layer in front of the whole service can make non-browser login flows or background sync unreliable.


🔐 Security Boundaries for the Vault

Bitwarden gets a stricter standard than most services because a vault failure can affect many other accounts.

Public principles I can document

AreaPrinciple
Master passwordExists only in user memory and private recovery processes, not in notes or config files
2FAThe vault itself needs a second factor, and recovery must be planned ahead
Admin accessKeep the number of admin accounts small; do not use high-privilege accounts for daily work
External entryExpose only what is necessary; management and operations details stay private
UpdatesBack up first, update second, then test login and sync

Content I do not publish

  • Actual service entry point or admin entry point
  • User lists, emails, groups, or family organization details
  • Master password hints or anything that helps guessing
  • TOTP seeds, recovery codes, emergency access contacts
  • SMTP, database, environment variable, or reverse-proxy configuration

The value of a public note is the architecture and operations model, not the full deployment recipe. The more complete a password-vault configuration is, the less suitable it is for public publishing.


📱 How I Actually Use It

I use Bitwarden as the center of daily login flow, not just a place to occasionally look up passwords.

Daily usage

  • Browser extensions handle most website logins
  • Mobile apps handle phone login and lookup workflows
  • New accounts get unique generated passwords immediately
  • Old accounts are gradually moved to high-strength random passwords
  • Secure notes stay focused and do not become a junk drawer

Items I prioritize first

TypeWhy it matters
Email accountsOther account recovery usually depends on email
Finance and paymentsThese affect money and billing security
Domain and DNS accountsHome Lab external access depends on them
Cloud and backup servicesRestore workflows often require these accounts first
Family shared accountsThese need clear permissions and handoff rules

I do not try to clean up every account at once. A more realistic approach is to update old credentials whenever I log in to an old service, slowly reducing weak and reused passwords over time.


💾 Backup and Restore

Backing up Bitwarden is not just keeping one folder. The real requirement is restoring the data, encryption-related material, process, and login capability together.

Data that needs protection

Data typeNotes
Vault dataLogin items, organization data, collections, metadata
AttachmentsIf attachments are used, they must be included in backups
Application settingsRegistration policy, invitations, admin settings, mail-related settings
Database stateIf an external database is used, database backup needs to be considered with app data
Private recovery informationMaster password, 2FA recovery, and emergency access processes must be stored offline

Post-restore checks

  1. Service starts normally
  2. Web login works
  3. Browser extension sync works
  4. Mobile app sync works
  5. Existing vault items are intact
  6. Attachments can be read
  7. 2FA and recovery paths still work
  8. Reverse proxy and HTTPS entry still work

Important

Password-vault backups need restore drills. A backup that has never been restored is only potentially useful during a real incident.


🛡️ 2FA and Recovery Flow

The vault itself should be stricter than normal services, but not so strict that I lock myself out permanently.

What I pay attention to

  • The master password is long and unique
  • The vault itself has 2FA enabled
  • 2FA recovery codes are stored offline
  • Family or critical accounts have a clear handoff and recovery process
  • At least one recovery path does not depend on the vault being available

The easy mistake is forgetting the bootstrap problem: if the password vault is broken, how do I log in to fix the password vault? If every recovery detail is stored only inside the vault, recovery becomes a loop.

Recovery design principles

ProblemPrinciple
Forgotten master passwordDo not expect the system to recover it; rely on planned private storage
Lost 2FA deviceKeep recovery codes and alternate verification methods offline
Service unavailableMaintain offline export or restorable backup strategy
Family access neededPermissions, emergency access, and handoff rules need to be defined early

⚠️ Pitfalls I Ran Into

Moving passwords into the vault does not automatically improve security

If I only move reused, weak, or old passwords into Bitwarden, the security posture does not immediately improve. The real improvement comes from rotating passwords, enabling 2FA, and removing accounts I no longer use.

Do not make the vault the only source of truth

Bitwarden is important, but it should not be the only lifeline. At minimum, I need:

  • Offline backup or export strategy
  • Recovery workflow for critical accounts
  • Master password and 2FA fallback plan
  • Temporary access plan when the service is unavailable

Do not publish too many deployment clues

A password vault is one of the most attractive targets in a self-hosted environment. Even without passwords, complete domain, proxy, database, SMTP, and user details can reduce the effort required for an attacker.


⬆️ Upgrade and Maintenance Principles

For Bitwarden-style services, I upgrade more conservatively than normal tools.

Before upgrading

  1. Confirm the latest backup succeeded
  2. Confirm the required offline recovery information is available
  3. Read release notes, especially database migrations or login-flow changes
  4. Avoid changing the reverse proxy, database, and authentication layer in the same maintenance window

After upgrading

  1. Test web login
  2. Test browser extension sync
  3. Test mobile app sync
  4. Check creating, editing, and deleting vault items
  5. Confirm backup jobs still succeed

Routine checks

  • Users can still log in normally
  • Sync has no delay or error
  • Backups succeed and can be restored
  • 2FA and recovery processes are still valid
  • High-risk unused accounts are cleaned up over time

Conclusion

Bitwarden is worth self-hosting in a Home Lab, but it deserves respect. Its value is not just “my passwords live at home.” Its real value is making password management, weak-password cleanup, cross-device sync, family sharing, and recovery workflows more organized.

At the same time, the vault itself becomes a high-value target. When publishing notes, I only document architecture, principles, and maintenance checks. I do not publish anything that can locate, access, recover, or infer sensitive deployment details.

Further reading: Home Lab Overview, OpenMediaVault, Nginx Proxy Manager, Authelia