113 lines
3.7 KiB
Markdown
113 lines
3.7 KiB
Markdown
# 🕊️ Eve Lite
|
|
|
|
> A lightweight, encrypted Nostr relay that puts your community's privacy first
|
|
|
|
Eve Lite is your personal gateway to secure, decentralized communities It creates encrypted "Closed Community Networks" (CCNs) where your messages stay truly private, from everyone.
|
|
|
|
## ✨ What makes Eve Lite special?
|
|
|
|
**Privacy by Design**: Unlike traditional Nostr relays where your messages are visible to everyone, Eve Lite encrypts everything. If someone gains access to the data, they'll only see encrypted gibberish.
|
|
|
|
**Extensible with Arxlets**: Think of Arxlets as mini-apps that run within your CCN. Want custom functionality? Write an Arxlet. Need to share functionality? Publish it for others to use.
|
|
|
|
**Dead Simple Setup**: No complex configurations or database management. Eve Lite handles the heavy lifting so you can focus on communicating.
|
|
|
|
**Invite-Only Networks**: Create closed communities with your friends, family, or team. Share invite codes to bring people into your private space.
|
|
|
|
## 🏗️ How it works
|
|
|
|
### Closed Community Networks (CCNs)
|
|
|
|
A CCN is like your own private island in the Nostr ocean. Each CCN has:
|
|
|
|
- **Unique encryption keys** - Messages are encrypted with network-specific keys
|
|
- **Local relay instance** - Each member's own strfry relay runs locally on port 6942
|
|
- **Persistent storage** - All messages are stored locally on each member's device and encrypted
|
|
|
|
### The Magic Behind the Scenes
|
|
|
|
1. **Encrypted Message Flow**: When you send a message, Eve Lite encrypts it before sending to remote relays
|
|
2. **Smart Decryption**: Incoming encrypted messages are automatically decrypted and stored locally
|
|
3. **Dual Relay System**: Remote encrypted storage + local decrypted access = best of both worlds
|
|
4. **Event Deduplication**: Smart caching prevents processing the same event twice
|
|
|
|
### Arxlets: Your Extensibility Layer
|
|
|
|
Arxlets are JavaScript-based apps that add functionality to your CCN:
|
|
|
|
- Stored as Nostr events (kind 30420)
|
|
- Compressed with Brotli for efficiency
|
|
- Can be shared across networks
|
|
- Perfect for custom UI components, utilities, or integrations
|
|
|
|
## 🔧 API Reference
|
|
|
|
Eve Lite exposes a RESTful API for building applications:
|
|
|
|
### CCN Management
|
|
|
|
- `GET /api/ccns` - List all CCNs
|
|
- `POST /api/ccns/new` - Create a new CCN
|
|
- `POST /api/ccns/join` - Join an existing CCN
|
|
- `GET /api/ccns/active` - Get the active CCN
|
|
- `POST /api/ccns/active` - Switch active CCN
|
|
|
|
### Events & Messages
|
|
|
|
- `POST /api/events` - Query events with filters
|
|
- `PUT /api/events` - Publish a new event
|
|
- `GET /api/events/:id` - Get specific event
|
|
- `POST /api/sign` - Sign an event with your key
|
|
|
|
### Profiles & Identity
|
|
|
|
- `GET /api/avatars/:pubkey` - Get user avatar
|
|
- `GET /api/profile/:pubkey` - Get user profile
|
|
- `GET /api/pubkey` - Get your public key
|
|
|
|
### Arxlets
|
|
|
|
- `GET /api/arxlets` - List installed Arxlets
|
|
- `GET /api/arxlets/:id` - Get specific Arxlet
|
|
- `GET /api/arxlets-available` - Browse available Arxlets
|
|
|
|
## 🛠️ Development
|
|
|
|
### Running Tests
|
|
|
|
```bash
|
|
bun test
|
|
bun test --watch # Watch mode
|
|
```
|
|
|
|
### Code Quality
|
|
|
|
This project uses Biome for linting and formatting:
|
|
|
|
```bash
|
|
bunx @biomejs/biome check
|
|
bunx @biomejs/biome format --write
|
|
```
|
|
|
|
## 🤝 Contributing
|
|
|
|
Found a bug? Have a feature idea? Contributions are welcome!
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch: `git checkout -b my-cool-feature`
|
|
3. Make your changes and add tests
|
|
4. Submit a pull request
|
|
|
|
## 📝 License
|
|
|
|
AGPLv3. See LICENSE.md for details.
|
|
|
|
## 🙋♀️ Questions?
|
|
|
|
- Check out the [Arxlet documentation](/docs/arxlets) for extending functionality
|
|
- Browse the source code - it's well-documented and approachable
|
|
- Open an issue if you find bugs or have suggestions
|
|
|
|
---
|
|
|
|
_Built with ❤️ for privacy-conscious humans who believe communication should be truly private._
|