{"id":28766089,"url":"https://github.com/rezapace/rdp-local","last_synced_at":"2025-07-27T06:35:06.399Z","repository":{"id":295721624,"uuid":"991029535","full_name":"rezapace/rdp-local","owner":"rezapace","description":"A high-performance, browser-based remote desktop solution featuring WebRTC screen sharing, real-time remote control capabilities, and an intuitive user interface.","archived":false,"fork":false,"pushed_at":"2025-05-27T14:24:26.000Z","size":82726,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-17T11:50:47.479Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","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/rezapace.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-05-27T02:53:21.000Z","updated_at":"2025-05-27T14:25:54.000Z","dependencies_parsed_at":"2025-05-27T03:51:15.168Z","dependency_job_id":null,"html_url":"https://github.com/rezapace/rdp-local","commit_stats":null,"previous_names":["rezapace/rdp-local"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rezapace/rdp-local","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rezapace%2Frdp-local","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rezapace%2Frdp-local/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rezapace%2Frdp-local/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rezapace%2Frdp-local/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rezapace","download_url":"https://codeload.github.com/rezapace/rdp-local/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rezapace%2Frdp-local/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267317562,"owners_count":24068471,"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-07-27T02:00:11.917Z","response_time":82,"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":[],"created_at":"2025-06-17T11:40:53.632Z","updated_at":"2025-07-27T06:35:06.392Z","avatar_url":"https://github.com/rezapace.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# RemoteDesktop Pro\n\nA high-performance, browser-based remote desktop solution featuring WebRTC screen sharing, real-time remote control capabilities, and an intuitive user interface.\n\n![RemoteDesktop Pro](https://repository-images.githubusercontent.com/123456789/remote-desktop-pro)\n\n## 🚀 Features\n\n- **Real-time Screen Sharing**: Low-latency, high-quality screen sharing with WebRTC\n- **Remote Control**: Control remote computers with keyboard and mouse input\n- **Adaptive Quality**: Automatically adjusts quality based on network conditions\n- **Multiple Codecs**: Supports AV1, VP9, VP8, and H264 for optimal performance\n- **Simple Connection**: Easy session sharing with unique IDs\n- **Cross-Platform**: Works on any device with a modern web browser\n- **Additional Tools**:\n  - Screenshot capture\n  - Session recording\n  - Picture-in-Picture mode\n  - Fullscreen support\n  - Connection statistics\n- **Optimized Performance**: Throttling and binary WebSocket data for mouse movements\n- **Mobile Support**: Touch interface for mobile devices\n\n## 📋 Requirements\n\n- **Node.js**: v14.0.0 or higher\n- **For full remote control**: Operating system that supports RobotJS\n\n## 🔧 Installation\n\n### Quick Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/rezapace/remote-desktop.git\ncd remote-desktop\n\n# Install dependencies\nnpm install\n\n# Start the server\nnpm start\n```\n\n### Building Portable macOS App (Apple Silicon)\n\n```bash\n# Make the build script executable\nchmod +x build-portable.sh\n\n# Run the build script\n./build-portable.sh\n```\n\nThis will create a portable macOS application at `./build/RemoteDesktop.app` and a distributable DMG file.\n\n## 🖥️ Usage\n\n1. **Start the server**:\n   ```bash\n   npm start\n   ```\n\n2. **Open the application** in your web browser:\n   ```\n   http://localhost:9000\n   ```\n\n3. **Choose your role**:\n   - **Host**: Share your screen and allow remote control\n   - **Viewer**: Connect to and control a remote screen\n\n### Host Instructions\n\n1. Select \"Host\" role\n2. Configure sharing options (show cursor, capture audio, quality)\n3. Click \"Start Sharing\"\n4. Share your Session ID with the person who needs to connect\n\n### Viewer Instructions\n\n1. Select \"Viewer\" role\n2. Enter the Host's Session ID\n3. Click \"Connect\"\n4. Once connected, click \"Enable Control\" to take control\n\n## 🛠️ Technical Details\n\n### Key Technologies\n\n- **WebRTC**: For peer-to-peer screen sharing and data channels\n- **WebSockets**: For signaling and control data\n- **RobotJS**: For system-level input control on the host\n- **Node.js**: For the server implementation\n\n### Architecture\n\nThe application follows a client-server architecture:\n\n- **Server**: Handles signaling between peers, relays control commands\n- **Client**: Manages WebRTC connections, UI, and user interactions\n\n### Performance Optimizations\n\n- Binary WebSocket for mouse movements\n- Input throttling for smooth control\n- Adaptive bitrate based on network conditions\n- Hardware acceleration when available\n- Codec preference optimization\n\n## 📝 Development\n\n### Project Structure\n\n```\n.\n├── app.js             # Client-side application logic\n├── index.html         # Main application UI\n├── package.json       # Node.js project configuration\n├── server.js          # WebSocket signaling server\n├── style.css          # Application styling\n└── build-portable.sh  # macOS app build script\n```\n\n### Custom Configuration\n\nEdit the configuration in `app.js` to adjust:\n- ICE servers\n- Video quality presets\n- Bitrate settings\n- Control sensitivity\n\n## ⚠️ Troubleshooting\n\n- **Connection Issues**: Ensure both host and client are on networks that allow WebRTC\n- **Screen Sharing Not Working**: Some browsers require HTTPS for screen sharing\n- **Remote Control Not Working**: Ensure RobotJS is properly installed on the host\n- **Performance Issues**: Try lowering the quality settings\n\n## 🔒 Security Considerations\n\n- The application creates direct peer-to-peer connections\n- No data is stored on any server\n- Consider running behind a reverse proxy with HTTPS for production use\n\n## 👥 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some 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 MIT License - see the LICENSE file for details.\n\n## 👤 Author\n\n**Reza Pace**\n- GitHub: [@rezapace](https://github.com/rezapace)\n\n---\n\n⭐️ If you found this project useful, please consider giving it a star on GitHub! ⭐️","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frezapace%2Frdp-local","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frezapace%2Frdp-local","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frezapace%2Frdp-local/lists"}