{"id":24708019,"url":"https://github.com/ramborogers/cyberchat","last_synced_at":"2025-06-25T18:31:44.999Z","repository":{"id":274387176,"uuid":"920361736","full_name":"RamboRogers/cyberchat","owner":"RamboRogers","description":"CyberChat - P2P Zero Config Chat and Files","archived":false,"fork":false,"pushed_at":"2025-01-27T14:50:07.000Z","size":49937,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-24T09:53:40.529Z","etag":null,"topics":["chat","golang","mdns","p2p","security"],"latest_commit_sha":null,"homepage":"https://matthewrogers.org","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RamboRogers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2025-01-22T02:34:29.000Z","updated_at":"2025-05-25T12:09:41.000Z","dependencies_parsed_at":"2025-01-27T01:40:11.396Z","dependency_job_id":null,"html_url":"https://github.com/RamboRogers/cyberchat","commit_stats":null,"previous_names":["ramborogers/cyberchat"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/RamboRogers/cyberchat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RamboRogers%2Fcyberchat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RamboRogers%2Fcyberchat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RamboRogers%2Fcyberchat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RamboRogers%2Fcyberchat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RamboRogers","download_url":"https://codeload.github.com/RamboRogers/cyberchat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RamboRogers%2Fcyberchat/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261930691,"owners_count":23231931,"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","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":["chat","golang","mdns","p2p","security"],"created_at":"2025-01-27T06:27:33.814Z","updated_at":"2025-06-25T18:31:44.927Z","avatar_url":"https://github.com/RamboRogers.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CyberChat 🌐\n\n[![Go Version](https://img.shields.io/badge/Go-1.22%2B-00ADD8.svg?style=flat\u0026logo=go)](https://golang.org)\n[![License](https://img.shields.io/badge/license-%20GPL%20v3.0-blue.svg)](LICENSE)\n[![Platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Windows%20%7C%20Linux-green.svg)](https://github.com/ramborogers/cyberchat/releases)\n[![Security](https://img.shields.io/badge/security-E2EE%20%7C%20PFS-brightgreen.svg)](https://github.com/ramborogers/cyberchat#-key-features)\n\n\nA secure, peer-to-peer chat application with end-to-end encryption, featuring a cyberpunk-themed UI and zero-configuration networking.  Think [Localsend](https://localsend.org) but with chat and broadcast capabilities.\n\n### When you would use cyberchat:\n - You want instant communication with friends/family without configuring anything\n - You want to talk to Linux / Windows / Mac machines without configuring anything\n - You want to share files with friends without the internet\n - You want to chat with friends without the internet\n\n### CyberChat Screenshots\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"media/logo.png\" alt=\"Cyberpunk Theme\" width=\"300\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"media/fileshare.png\" alt=\"Cyberpunk Theme\" width=\"300\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"media/upload.png\" alt=\"Cyberpunk Theme\" width=\"300\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"media/peers.png\" alt=\"Cyberpunk Theme\" width=\"300\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## ✨ Key Features\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cstrong\u003e🔒 Security\u003c/strong\u003e\u003cbr\u003e\n      • End-to-end encryption\u003cbr\u003e\n      • Perfect forward secrecy\u003cbr\u003e\n      • Certificate-based security\u003cbr\u003e\n      • 1 click wipe\u003cbr\u003e\n      • No internet required\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cstrong\u003e🌐 Networking\u003c/strong\u003e\u003cbr\u003e\n      • Zero configuration\u003cbr\u003e\n      • Peer-to-peer via mDNS\u003cbr\u003e\n      • Direct message routing\u003cbr\u003e\n      • No central server\u003cbr\u003e\n      • Offline support\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cstrong\u003e📱 Interface\u003c/strong\u003e\u003cbr\u003e\n      • Desktop app\u003cbr\u003e\n      • Web interface\u003cbr\u003e\n      • Cyberpunk theme\u003cbr\u003e\n      • Real-time updates\u003cbr\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cstrong\u003e📁 Files\u003c/strong\u003e\u003cbr\u003e\n      • Encrypted transfers\u003cbr\u003e\n      • Unlimited file size\u003cbr\u003e\n      • Media previews\u003cbr\u003e\n      • Auto cleanup\u003cbr\u003e\n      • Resume support\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cstrong\u003e📢 Social\u003c/strong\u003e\u003cbr\u003e\n      • Broadcast messages\u003cbr\u003e\n      • Private messages\u003cbr\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cstrong\u003e⚡ Performance\u003c/strong\u003e\u003cbr\u003e\n      • Low resource usage\u003cbr\u003e\n      • Quick startup\u003cbr\u003e\n      • State recovery\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## ⚡ Installation\n\nThe binary is available for Windows, Mac, and Linux. You can download from the bins folder, or use the install scripts. They are in the repo if you want to browse the commands (super simple download and copy).\n\n---\n\n### 🐧 Mac \u0026 Linux \u0026 Windows (Desktop App)\n\nFor a desktop app, download a release from the [releases page](https://github.com/RamboRogers/cyberchat/releases).\n\n\u003cb\u003e🍏 Homebrew Install for Apple Desktop App\u003c/b\u003e\n\n```\nbrew tap ramborogers/cyberchat\nbrew install --cask cyberchat-desktop\n```\n\u003e \u003ci\u003eApple doesn't like self signed apps. I've applied for a developer account, but it takes a while to get approved. Use brew to install the desktop app or you can use xattr to remove the quarantine attribute.\u003c/i\u003e\n\n---\n\n### 🐧 Mac \u0026 Linux \u0026 Windows (Single Binary + Web Interface)\n\nFor a single binary, you can use the install scripts and your web browser.\n\nOpen a terminal and run the following command:\n\n```bash\ncurl -L https://raw.githubusercontent.com/RamboRogers/cyberchat/refs/heads/master/install.sh | sh\n```\n\nor Brew for Mac\n\n```bash\nbrew tap ramborogers/cyberchat\nbrew install cyberchat\n```\n\n### 🪟 Windows PowerShell\n\nOpen a PowerShell terminal and run the following command:\n```powershell\niwr -useb https://raw.githubusercontent.com/RamboRogers/cyberchat/refs/heads/master/install.ps1 | iex\n```\n\n## 🚀 Quick Start\n\nThe cyberchat binary has a number of options. You can run the server directly, or run the desktop electron app.\n```bash\nUsage of cyberchat\n  -d string\n        Custom home directory for CyberChat data\n  -debug\n        Enable debug logging\n  -n string\n        Name to use for this peer\n  -p int\n        Port to listen on (default 7331)\n  -r    Reset all data and start fresh\n  -v    Show version information\n```\n\nThen access the web interface at `https://localhost:7331`\n\n## 🔧 Prerequisites\n\n- Go 1.22 or later\n- Node.js and npm\n- GCC for CGO compilation\n- Platform-specific requirements:\n  - **Windows**: MinGW\n  - **Linux**: build-essential\n  - **macOS**: Xcode CLI tools\n\n## 🏗️ Architecture\n\n### Security Model\n\n- RSA key pairs for peer identity\n- AES-256 message encryption\n- Trust levels (0-4) for peers\n- Certificate-based transport security\n\n### Core Components\n\n- **Server** (Default port: 7331)\n  - SQLite persistence\n  - Gorilla Mux routing\n  - WebSocket support\n  - Auto-port increment\n\n- **Database Schema**\n  ```\n  settings  - Configuration\n  peers     - Network members\n  messages  - 30-day retention\n  files     - Transfer tracking\n  relays    - Message routing\n  ```\n\n- **API Endpoints**\n  ```\n  /api/v1/message    - Message handling\n  /api/v1/file       - File operations\n  /api/v1/whoami     - Identity management\n  /api/v1/discovery  - Peer discovery\n  /api/v1/client     - Web client API\n  ```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the GNU GPL v3.0 License - see the [LICENSE](LICENSE) file for details.\n\n## 🛡️ Security\n\nPlease report security vulnerabilities to the issue tracker.\n\n## 🙏 Acknowledgments\n\n- The Go team for an amazing language\n- The Electron project for cross-platform support\n- The cyberpunk community for design inspiration\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n## ⚖️ License\n\n\u003cp\u003e\nCyberDock is licensed under the GNU General Public License v3.0 (GPLv3).\u003cbr\u003e\n\u003cem\u003eFree Software\u003c/em\u003e\n\u003c/p\u003e\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg?style=for-the-badge)](https://www.gnu.org/licenses/gpl-3.0)\n\n### Connect With Me 🤝\n\n[![GitHub](https://img.shields.io/badge/GitHub-RamboRogers-181717?style=for-the-badge\u0026logo=github)](https://github.com/RamboRogers)\n[![Twitter](https://img.shields.io/badge/Twitter-@rogerscissp-1DA1F2?style=for-the-badge\u0026logo=twitter)](https://x.com/rogerscissp)\n[![Website](https://img.shields.io/badge/Web-matthewrogers.org-00ADD8?style=for-the-badge\u0026logo=google-chrome)](https://matthewrogers.org)\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framborogers%2Fcyberchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Framborogers%2Fcyberchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framborogers%2Fcyberchat/lists"}