mirror of
https://github.com/shuaiplus/nodewarden.git
synced 2026-06-20 21:00:41 +00:00
109 lines
2.8 KiB
Markdown
109 lines
2.8 KiB
Markdown
# NodeWarden
|
||
中文文档:[`README_ZH.md`](./README_ZH.md)
|
||
|
||
A **Bitwarden-compatible** server that runs on **Cloudflare Workers**.
|
||
|
||
- Simple deploy (no VPS)
|
||
- Focused feature set
|
||
- Low maintenance
|
||
|
||
|
||
> Disclaimer
|
||
> - This project is **not affiliated** with Bitwarden.
|
||
> - Use at your own risk. Keep regular backups of your vault.
|
||
|
||
---
|
||
|
||
## Features
|
||
|
||
- ✅ **Free to use. No server to manage.**
|
||
- ✅ Full support for logins, notes, cards, and identities
|
||
- ✅ Folders and favorites
|
||
- ✅ Attachments (Cloudflare R2)
|
||
- ✅ Import / export
|
||
- ✅ Website icons
|
||
- ✅ End-to-end encryption (the server can’t see plaintext)
|
||
- ✅ Compatible with common Bitwarden official clients
|
||
|
||
## Tested clients / platforms
|
||
|
||
- ✅ Windows desktop client (v2026.1.0)
|
||
- ✅ Android app (v2026.1.0)
|
||
- ✅ Browser extension (v2026.1.0)
|
||
- ⬜ macOS desktop client (not tested)
|
||
- ⬜ Linux desktop client (not tested)
|
||
|
||
---
|
||
|
||
# Quick start
|
||
|
||
### One-click deploy
|
||
|
||
[](https://deploy.workers.cloudflare.com/?url=https://github.com/shuaiplus/nodewarden)
|
||
|
||
**Deploy steps:**
|
||
|
||
1. Sign in with GitHub and authorize
|
||
2. Sign in to Cloudflare
|
||
3. **Important**: set `JWT_SECRET` to a strong random string (recommended: `openssl rand -hex 32`)
|
||
4. D1 database and R2 bucket will be created automatically
|
||
5. Click **Deploy** and wait for it to finish
|
||
6. After deploy, open the Cloudflare-provided Workers URL (your service URL), and register on the web page
|
||
|
||
> ⚠️ **Reminder**: always use a strong random `JWT_SECRET`. Weak secrets may put your account at risk.
|
||
|
||
### Configure your client
|
||
|
||
In any Bitwarden client:
|
||
|
||
1. Open **Settings**
|
||
2. Choose **Self-hosted environment**
|
||
3. Set **Server URL** to your Worker URL (for example: `https://your-project.your-subdomain.workers.dev`)
|
||
4. Save, then go back to the login screen
|
||
|
||
## 🧑💻 Local development
|
||
|
||
This repo is a Cloudflare Workers TypeScript project (Wrangler).
|
||
|
||
```bash
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
---
|
||
|
||
## Tech stack
|
||
|
||
- **Runtime**: Cloudflare Workers
|
||
- **Data storage**: Cloudflare D1 (SQLite)
|
||
- **File storage**: Cloudflare R2
|
||
- **Language**: TypeScript
|
||
- **Crypto**: Client-side AES-256-CBC, JWT uses HS256
|
||
|
||
---
|
||
|
||
## 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 can’t be recovered (end-to-end encryption). Keep it safe.
|
||
|
||
**Q: Can multiple people use it?**
|
||
A: Not recommended. This project is designed for single-user usage.
|
||
|
||
---
|
||
|
||
## License
|
||
|
||
LGPL-3.0 License
|
||
|
||
---
|
||
|
||
## Credits
|
||
|
||
- [Bitwarden](https://bitwarden.com/) - original design and clients
|
||
- [Vaultwarden](https://github.com/dani-garcia/vaultwarden) - server implementation reference
|
||
- [Cloudflare Workers](https://workers.cloudflare.com/) - serverless platform
|