https://github.com/kamlendras/mvbot
System UUID Matrix Anti-Spam Tool
https://github.com/kamlendras/mvbot
spam-prevention synapse
Last synced: about 1 month ago
JSON representation
System UUID Matrix Anti-Spam Tool
- Host: GitHub
- URL: https://github.com/kamlendras/mvbot
- Owner: kamlendras
- Created: 2025-07-03T08:19:43.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-07-03T13:50:58.000Z (3 months ago)
- Last Synced: 2025-09-06T13:47:10.577Z (about 1 month ago)
- Topics: spam-prevention, synapse
- Language: Rust
- Homepage:
- Size: 26.4 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# System UUID Matrix Anti-Spam Tool
A hardware-based identity verification system that links Matrix usernames to system UUIDs, preventing spam and multi-account abuse. Each device can only register one Matrix account, making it harder for bad actors to create multiple accounts or circumvent bans.
## Features
- **Secure API**: Protected endpoints with API key authentication
- **Web Interface**: Built-in web dashboard for viewing records
- **SQLite Database**: Lightweight, embedded database storage
- **UUID Validation**: Prevents duplicate registrations and username changes
- **Embedded HTML**: Standalone binary with built-in web interface## Quick Start
### 1. Installation
```bash
paru -S mvbot or yay -S mvbot
```
or if install directly from [binary](https://github.com/kamlendras/mvbot/releases/download/stable/mvbot)
```bash
chmod +x mvbot
./mvbot
```
```bash
[ks@hello ~]$ mvbot
System UUID Client
==================
Detecting system UUID... [sudo] password for ks:
✓ Found: 034659ec-abb6-446d-a0f6-745d228b03e2
Enter your Matrix username (e.g., @username:matrix.org): @ks:legolinux.orgData to upload:
UUID: 034659ec-abb6-446d-a0f6-745d228b03e2
Matrix User: @ks:legolinux.org
Timestamp: 2025-07-03 11:26:15.572569416 UTCUploading to server... ✓ Upload successful!
Server response: {"success":true,"message":"System UUID already registered with the same Matrix username","id":1}
```
Web Interface at: https://verify.legolinux.org
## Self-hosting### 1. Generate API Key
```bash
cargo run --bin setup_api_key
```This will generate a secure API key and display it.
### 2. Configure Domain
If deploying to a custom domain, update the server URL in `src/client.rs`:
```rust
// Replace with your actual domain
const SERVER_URL: &str = "https://verify.example.com/api/upload";
```### 3. Build Applications
```bash
# Build server binary
cargo build --release --bin server# Build client binary
cargo build --release --bin client
```### 4. Run Server
```bash
# Start the server (runs on localhost:3030)
chmod +x server
./server
```
Note: The server will stop if you exit the terminal. To keep it running in the background, use:
```bash
nohup ./server &
```
Web Interface at: http://localhost:3030
### 3. Configure Nginx Reverse ProxyCreate `./nginx.conf`:
```
server {
listen 80;
server_name verify.example.com;# Allow Let's Encrypt validation
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}# Redirect all other HTTP traffic to HTTPS
location / {
return 301 https://$server_name$request_uri;
}
}server {
listen 443 ssl;
listen [::]:443 ssl;
server_name verify.example.com;# SSL certificates
ssl_certificate /etc/nginx/certs/live/verify.example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/live/verify.example.com/privkey.pem;location / {
proxy_pass http://172.18.0.1:3030; // Replace it with your Host IP
}}
```