{"id":30886646,"url":"https://github.com/kamlendras/mvbot","last_synced_at":"2025-09-08T13:07:49.581Z","repository":{"id":302871392,"uuid":"1013012045","full_name":"kamlendras/mvbot","owner":"kamlendras","description":"System UUID Matrix Anti-Spam Tool","archived":false,"fork":false,"pushed_at":"2025-07-03T13:50:58.000Z","size":27,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-06T13:47:10.577Z","etag":null,"topics":["spam-prevention","synapse"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kamlendras.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-03T08:19:43.000Z","updated_at":"2025-07-23T21:46:01.000Z","dependencies_parsed_at":"2025-07-04T15:08:28.190Z","dependency_job_id":null,"html_url":"https://github.com/kamlendras/mvbot","commit_stats":null,"previous_names":["kamlendras/mvbot"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/kamlendras/mvbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamlendras%2Fmvbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamlendras%2Fmvbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamlendras%2Fmvbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamlendras%2Fmvbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kamlendras","download_url":"https://codeload.github.com/kamlendras/mvbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamlendras%2Fmvbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274189051,"owners_count":25237871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["spam-prevention","synapse"],"created_at":"2025-09-08T13:07:45.672Z","updated_at":"2025-09-08T13:07:49.567Z","avatar_url":"https://github.com/kamlendras.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# System UUID Matrix Anti-Spam Tool\n\nA 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.\n\n## Features\n\n- **Secure API**: Protected endpoints with API key authentication\n- **Web Interface**: Built-in web dashboard for viewing records\n- **SQLite Database**: Lightweight, embedded database storage\n- **UUID Validation**: Prevents duplicate registrations and username changes\n- **Embedded HTML**: Standalone binary with built-in web interface\n\n## Quick Start\n### 1. Installation\n```bash\nparu -S mvbot or yay -S mvbot\n```\nor if install directly from [binary](https://github.com/kamlendras/mvbot/releases/download/stable/mvbot)\n```bash\nchmod +x mvbot\n./mvbot\n```\n```bash\n[ks@hello ~]$ mvbot\nSystem UUID Client\n==================\nDetecting system UUID... [sudo] password for ks:\n✓ Found: 034659ec-abb6-446d-a0f6-745d228b03e2\nEnter your Matrix username (e.g., @username:matrix.org): @ks:legolinux.org\n\nData to upload:\nUUID: 034659ec-abb6-446d-a0f6-745d228b03e2\nMatrix User: @ks:legolinux.org\nTimestamp: 2025-07-03 11:26:15.572569416 UTC\n\nUploading to server... ✓ Upload successful!\nServer response: {\"success\":true,\"message\":\"System UUID already registered with the same Matrix username\",\"id\":1}\n```\nWeb Interface at: https://verify.legolinux.org\n## Self-hosting\n\n### 1. Generate API Key\n\n```bash\ncargo run --bin setup_api_key\n```\n\nThis will generate a secure API key and display it. \n\n### 2. Configure Domain\n\nIf deploying to a custom domain, update the server URL in `src/client.rs`:\n\n```rust\n// Replace with your actual domain\nconst SERVER_URL: \u0026str = \"https://verify.example.com/api/upload\";\n```\n\n### 3. Build Applications\n\n```bash\n# Build server binary\ncargo build --release --bin server\n\n# Build client binary  \ncargo build --release --bin client\n```\n\n### 4. Run Server\n```bash\n# Start the server (runs on localhost:3030)\nchmod +x server\n./server\n```\nNote: The server will stop if you exit the terminal. To keep it running in the background, use:\n```bash\nnohup ./server \u0026\n```\nWeb Interface at: http://localhost:3030\n### 3. Configure Nginx Reverse Proxy\n\nCreate `./nginx.conf`:\n\n```\nserver {\n    listen 80;\n    server_name verify.example.com;\n\n    # Allow Let's Encrypt validation\n    location /.well-known/acme-challenge/ {\n        root /var/www/certbot;\n    }\n\n    # Redirect all other HTTP traffic to HTTPS\n    location / {\n        return 301 https://$server_name$request_uri;\n    }\n}\n\nserver {\n    listen 443 ssl;\n    listen [::]:443 ssl;\n    server_name verify.example.com;\n\n    # SSL certificates\n    ssl_certificate /etc/nginx/certs/live/verify.example.com/fullchain.pem;\n    ssl_certificate_key /etc/nginx/certs/live/verify.example.com/privkey.pem;\n\n    location / {\n    proxy_pass http://172.18.0.1:3030; // Replace it with your Host IP\n    }\n\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamlendras%2Fmvbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkamlendras%2Fmvbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamlendras%2Fmvbot/lists"}