shuaiplus 36f398b728 feat: add export and import functionality for Bitwarden and NodeWarden formats
- Implemented export formats for Bitwarden (JSON, encrypted JSON, ZIP) and NodeWarden (JSON).
- Added support for attachments in ciphers and introduced new types for handling attachments.
- Enhanced import formats to include Bitwarden ZIP and NodeWarden JSON.
- Updated internationalization strings for attachment-related features.
- Improved UI styles for attachment management and import summary display.
2026-03-04 01:03:49 +08:00
2026-02-03 22:58:41 +08:00

NodeWarden Logo

A third-party Bitwarden server running on Cloudflare Workers, fully compatible with official clients.

Powered by Cloudflare License: LGPL-3.0 Deploy to Cloudflare Workers Latest Release Sync Upstream

Release NotesReport an IssueLatest Release

中文文档:README.md

Disclaimer
This project is for learning and communication purposes only. We are not responsible for any data loss; regular vault backups are strongly recommended.
This project is not affiliated with Bitwarden. Please do not report issues to the official Bitwarden team.


Feature Comparison Table (vs Official Bitwarden Server)

Capability Bitwarden NodeWarden Notes
Web Vault (logins/notes/cards/identities) Web-based vault management UI
Folders / Favorites Common vault organization supported
Full sync /api/sync Compatibility and performance optimized
Attachment upload/download Backed by Cloudflare R2
Import flow (common clients) Common import paths covered
Website icon proxy Via /icons/{hostname}/icon.png
passkey、TOTP fields Official service requires premium; NodeWarden does not
Multi-user Full user management with invitation mechanism
Send Text Send and File Send are supported
Organizations / Collections / Member roles Not necessary to implement
Login 2FA (TOTP/WebAuthn/Duo/Email) ⚠️ Partial User-level TOTP only
SSO / SCIM / Enterprise directory Not necessary to implement
Emergency access Not necessary to implement
Admin console / Billing & subscription Free only
Full push notification pipeline Not necessary to implement

Tested clients / platforms

  • Windows desktop client (v2026.1.0)
  • Mobile app (v2026.1.0)
  • Browser extension (v2026.1.0)
  • Linux desktop client (v2026.1.0)
  • macOS desktop client (not tested)

Quick start

One-click deploy

Deploy steps:

  1. Fork this repository and name it NodeWarden.
  2. Click the deploy button below, rename the project to NodeWarden2, and set JWT_SECRET to a 32-character random string.
  3. Deploy to Cloudflare Workers
  4. After deployment, open the Workers settings on the same page and disconnect the Git repository.
  5. From the same location, reconnect the Git repository to the fork you created in step 1.

Sync upstream (update):

  • Manual: Open your forked repository on GitHub and click Sync fork when the sync prompt appears at the top.
  • Automatic: Go to your fork → Actions, click "I understand my workflows, go ahead and enable them". The repository will auto-sync with upstream every day at 3 AM.

CLI deploy

# Clone repository
git clone https://github.com/shuaiplus/NodeWarden.git
cd NodeWarden

# Install dependencies
npm install

# Cloudflare CLI login
npx wrangler login

# Create cloud resources (D1 + R2)
npx wrangler d1 create nodewarden-db
npx wrangler r2 bucket create nodewarden-attachments

# Deploy
npm run deploy 

# To update later: re-clone and re-deploy — no need to recreate cloud resources
git clone https://github.com/shuaiplus/NodeWarden.git
cd NodeWarden
npm run deploy 

Local development

This repo is a Cloudflare Workers TypeScript project (Wrangler).

npm install
npm run dev

FAQ

Q: How do I back up my data?
A: Use Export vault in your client and save the JSON file.

Q: What if I forget the master password?
A: It cant be recovered (end-to-end encryption). Keep it safe.

Q: Can multiple people use it?
A: Yes. The first registered user becomes the admin. The admin can generate invite codes from the admin panel, and other users register with those codes.


License

LGPL-3.0 License


Credits


Star History

Star History Chart

Languages
TypeScript 92.6%
CSS 6.1%
JavaScript 1.2%
HTML 0.1%