Update README.md
This commit is contained in:
169
README.md
169
README.md
@@ -1,2 +1,167 @@
|
||||
# Noderunners-relay-front
|
||||
The noderunners Nostr relay front-end
|
||||
# Noderunners Relay
|
||||
|
||||
A high-performance Nostr relay built by Bitcoiners, for Bitcoiners. This project provides a web interface for managing access to the Noderunners relay service.
|
||||
|
||||

|
||||
|
||||
## Features
|
||||
|
||||
- 🚀 Lightning-fast relay performance with strfry v1.0.3
|
||||
- ⚡ Lightning Network integration for payments
|
||||
- 🔒 Secure authentication with Nostr
|
||||
- 💻 Modern, responsive web interface
|
||||
- 📊 Real-time relay statistics
|
||||
- 🔍 Uptime monitoring
|
||||
- 🖼️ Iframe support for embedding
|
||||
- 🔑 Multiple login methods (Extension, Manual, URL-based)
|
||||
|
||||
## Tech Stack
|
||||
|
||||
- **Frontend**: React + TypeScript + Vite
|
||||
- **Styling**: Tailwind CSS
|
||||
- **Icons**: Lucide React
|
||||
- **Payment**: LNbits Integration
|
||||
- **Authentication**: Nostr Protocol
|
||||
- **State Management**: Zustand
|
||||
|
||||
## Environment Variables
|
||||
|
||||
Create a `.env` file in the root directory with the following variables:
|
||||
|
||||
```env
|
||||
# LNbits Configuration
|
||||
VITE_LNBITS_URL="your-lnbits-url"
|
||||
VITE_LNBITS_API_KEY="your-api-key"
|
||||
|
||||
# App Settings
|
||||
VITE_APP_NAME="Noderunners Relay"
|
||||
VITE_APP_DESCRIPTION="A high-performance Nostr relay built by Bitcoiners, for Bitcoiners"
|
||||
VITE_LOGO_URL="your-logo-url"
|
||||
VITE_GITHUB_URL="your-github-url"
|
||||
|
||||
# Nostr Settings
|
||||
VITE_NOSTR_RELAY_URL="wss://your-relay-url"
|
||||
VITE_API_URL="your-api-url"
|
||||
VITE_SUPPORTED_NIPS="1,2,4,9,11,22,28,40,70,77"
|
||||
VITE_RELAY_SOFTWARE="strfry v1.0.3"
|
||||
|
||||
# Payment Settings
|
||||
VITE_MIN_PAYMENT_AMOUNT=10000
|
||||
VITE_PAYMENT_MEMO="Noderunners Relay Access"
|
||||
VITE_PAYMENT_CURRENCY="sat"
|
||||
VITE_WEBHOOK_URL="your-webhook-url"
|
||||
|
||||
# Feature Flags
|
||||
VITE_ENABLE_WHITELIST=true
|
||||
VITE_ENABLE_PAYMENT_VERIFICATION=true
|
||||
VITE_ENABLE_DEMO=false
|
||||
|
||||
# Uptime Monitoring
|
||||
VITE_UPTIME_KUMA_URL="your-uptime-kuma-url"
|
||||
VITE_UPTIME_KUMA_ID="1"
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
1. Install dependencies:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
2. Start the development server:
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
3. Build for production:
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
## Authentication Methods
|
||||
|
||||
The application supports multiple authentication methods:
|
||||
|
||||
1. **Nostr Extension**
|
||||
- Uses browser extensions like Alby for seamless authentication
|
||||
- Automatically retrieves the user's public key
|
||||
|
||||
2. **Manual Entry**
|
||||
- Users can manually input their npub or hex public key
|
||||
- Supports both formats for maximum flexibility
|
||||
|
||||
3. **URL-based Authentication**
|
||||
- Automatically logs in using URL parameters
|
||||
- Supports both `npub` and `pubkey` parameters
|
||||
- Example URLs:
|
||||
```
|
||||
https://your-domain.com?npub=npub1...
|
||||
https://your-domain.com?pubkey=abc123...
|
||||
```
|
||||
|
||||
## Iframe Integration
|
||||
|
||||
The application supports iframe embedding with a clean interface. Add `?iframe=1` to the URL to:
|
||||
- Hide header and footer
|
||||
- Show a logout button on the dashboard
|
||||
- Maintain a minimal interface
|
||||
|
||||
Example:
|
||||
```html
|
||||
<iframe src="https://your-relay-domain.com?iframe=1" width="100%" height="600px"></iframe>
|
||||
```
|
||||
|
||||
You can combine iframe mode with URL-based authentication:
|
||||
```html
|
||||
<iframe src="https://your-relay-domain.com?iframe=1&npub=npub1..." width="100%" height="600px"></iframe>
|
||||
```
|
||||
|
||||
## Supported NIPs
|
||||
|
||||
The relay supports the following Nostr Implementation Possibilities (NIPs):
|
||||
- NIP-01: Basic protocol flow description
|
||||
- NIP-02: Contact List and Petnames
|
||||
- NIP-04: Encrypted Direct Messages
|
||||
- NIP-09: Event Deletion
|
||||
- NIP-11: Relay Information Document
|
||||
- NIP-22: Event `created_at` Limits
|
||||
- NIP-28: Public Chat
|
||||
- NIP-40: Expiration Timestamp
|
||||
- NIP-70: Relay Payment Info
|
||||
- NIP-77: Lightning Network Relay Payment
|
||||
|
||||
## API Services
|
||||
|
||||
### LNbits Integration
|
||||
- Invoice creation
|
||||
- Payment verification
|
||||
- Exchange rate conversion
|
||||
- Wallet information
|
||||
|
||||
### Relay API
|
||||
- User information
|
||||
- Whitelist management
|
||||
- Payment processing
|
||||
- Status monitoring
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork the repository
|
||||
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
||||
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
||||
4. Push to the branch (`git push origin feature/amazing-feature`)
|
||||
5. Open a Pull Request
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||
|
||||
## Support
|
||||
|
||||
For support, join our [Telegram group](https://t.me/noderunners) or visit [our website](https://noderunners.network).
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
- Built by the Noderunners community
|
||||
- Powered by [strfry](https://github.com/hoytech/strfry)
|
||||
- Lightning Network integration via [LNbits](https://lnbits.com)
|
||||
|
||||
Reference in New Issue
Block a user