{"id":28984828,"url":"https://github.com/stvenchg/zibra","last_synced_at":"2026-04-08T16:03:05.773Z","repository":{"id":294466151,"uuid":"985258649","full_name":"stvenchg/Zibra","owner":"stvenchg","description":"Modern peer-to-peer file sharing application for local networks using WebRTC technology. Transfer files directly between devices without size limits or cloud storage.","archived":false,"fork":false,"pushed_at":"2025-05-24T16:06:12.000Z","size":1113,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-30T09:10:46.841Z","etag":null,"topics":["file-sharing","file-transfer","javascript","local-network","networking","p2p","peer-to-peer","react","real-time-communication","snapdrop","socket-io","tailwindcss","typescript","webrtc"],"latest_commit_sha":null,"homepage":"https://zibra.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stvenchg.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,"zenodo":null}},"created_at":"2025-05-17T11:44:13.000Z","updated_at":"2025-05-24T16:06:15.000Z","dependencies_parsed_at":"2025-05-20T22:31:56.475Z","dependency_job_id":null,"html_url":"https://github.com/stvenchg/Zibra","commit_stats":null,"previous_names":["stvenchg/zibra"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stvenchg/Zibra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvenchg%2FZibra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvenchg%2FZibra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvenchg%2FZibra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvenchg%2FZibra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stvenchg","download_url":"https://codeload.github.com/stvenchg/Zibra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvenchg%2FZibra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31562697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["file-sharing","file-transfer","javascript","local-network","networking","p2p","peer-to-peer","react","real-time-communication","snapdrop","socket-io","tailwindcss","typescript","webrtc"],"created_at":"2025-06-24T18:02:39.065Z","updated_at":"2026-04-08T16:03:05.767Z","avatar_url":"https://github.com/stvenchg.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zibra\n\n![Zibra Logo](/public/zibra.svg)\n\nZibra is a modern, web-based file transfer application that leverages WebRTC for direct peer-to-peer file sharing within your local network. No cloud storage, no file size limitations imposed by servers - just fast, secure, and direct file transfers between devices.\n\n## Features\n\n- **Peer-to-Peer File Transfer**: Transfer files directly between devices without going through a server\n- **Zero Configuration**: Just open the app on both devices and start sharing\n- **Multi-file Support**: Select and send multiple files at once\n- **Real-time Progress Tracking**: View transfer progress with speed and time remaining\n- **Drag \u0026 Drop**: Easy file selection with drag and drop interface\n- **Device Identification**: Customizable device names with persistent settings\n- **Dark Mode Support**: Comfortable viewing in any environment\n- **No Installation Required**: Works in any modern browser\n\n## Tech Stack\n\n- React with TypeScript\n- WebRTC for peer-to-peer communication\n- Socket.io for signaling\n- TailwindCSS for styling\n- Vite for build tooling\n\n## Installation\n\n### Prerequisites\n\n- Node.js (v14 or higher)\n- npm or yarn\n\n### Setup\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/stvenchg/zibra.git\ncd zibra\n```\n\n2. Install dependencies:\n```bash\nnpm install\n# or\nyarn install\n```\n\n3. Start both the client and signaling server:\n```bash\nnpm start\n# or\nyarn start\n```\n\nThis will launch both the development server for the client and the signaling server simultaneously.\n\n### Development Mode\n\nIf you prefer to run the client and server separately during development:\n\n```bash\n# Run the client development server\nnpm run dev\n# or\nyarn dev\n\n# Run the signaling server\nnpm run server\n# or\nyarn server\n```\n\n### Build for Production\n\n```bash\nnpm run build\n# or\nyarn build\n```\n\n## Usage\n\n1. Open the application on two different devices on the same network\n2. Select files to transfer on the source device\n3. Click on the target device in the available devices list\n4. Watch the transfer progress in real-time\n5. Access transferred files on the destination device\n\n## Deploying the Signaling Server\n\nThe signaling server is required for devices to discover each other before establishing direct WebRTC connections. You can deploy it on various platforms:\n\n### Deploying on Railway\n\n1. Create an account on [Railway](https://railway.app/)\n2. Install the Railway CLI\n   ```bash\n   npm i -g @railway/cli\n   ```\n3. Login to Railway\n   ```bash\n   railway login\n   ```\n4. Initialize a new project in the server directory\n   ```bash\n   cd server\n   railway init\n   ```\n5. Configure your deployment with the following settings:\n   - Build Command: `npm install`\n   - Start Command: `node server/index.js`\n6. Deploy the server\n   ```bash\n   railway up\n   ```\n7. Set your service to public and note the domain provided by Railway\n8. Update the `.env` file to point to your deployed server:\n   ```\n   VITE_SERVER_URL=https://your-railway-domain.up.railway.app\n   ```\n\n### Deploying on Render\n\n1. Create an account on [Render](https://render.com/)\n2. Create a new Web Service\n3. Connect your GitHub repository or upload the server code directly\n4. Configure the service:\n   - Build Command: `npm install`\n   - Start Command: `node server/index.js`\n   - Environment Variables: No special variables required\n5. Click \"Create Web Service\"\n6. Once deployed, note the URL provided by Render\n7. Update the `.env` file to point to your deployed server:\n   ```\n   VITE_SERVER_URL=https://zibra-server.onrender.com\n   ```\n\n### Deploying on Heroku\n\n1. Create an account on [Heroku](https://heroku.com/)\n2. Install the Heroku CLI\n   ```bash\n   npm install -g heroku\n   ```\n3. Login to Heroku\n   ```bash\n   heroku login\n   ```\n4. Create a new Heroku app\n   ```bash\n   cd server\n   heroku create zibra-signaling-server\n   ```\n5. Configure your Procfile to use the correct start command:\n   ```\n   web: node server/index.js\n   ```\n6. Deploy to Heroku\n   ```bash\n   git subtree push --prefix server heroku main\n   # or if you're deploying from a subdirectory\n   git push heroku `git subtree split --prefix server main`:main --force\n   ```\n7. Note the URL provided by Heroku\n8. Update the `.env` file to point to your deployed server:\n   ```\n   VITE_SERVER_URL=https://zibra-signaling-server.herokuapp.com\n   ```\n\n## Environment Variables\n\nCreate a `.env` file in the root directory with these variables:\n\n```\nVITE_SERVER_URL=http://your-signaling-server:3001\n```\n\n## Browser Support\n\nZibra works on all modern browsers that support WebRTC:\n\n- Chrome (desktop and mobile)\n- Firefox (desktop and mobile)\n- Safari (desktop and mobile)\n- Edge (Chromium-based)\n\n## Future Roadmap\n\nZibra is continuously evolving. Here are some features we're planning to add:\n\n### Short-term goals\n\n- **Temporary File Hosting**: Allow files to be temporarily stored on the server for users who are not online simultaneously\n- **Shareable Links**: Generate unique links to share files with users outside your network\n- **File Encryption**: End-to-end encryption for all file transfers\n- **Transfer Resumption**: Resume interrupted transfers where they left off\n\n### Long-term vision\n\n- **Multi-platform clients**: Native desktop and mobile applications\n- **File Transfer History**: Keep track of previously sent and received files\n- **Offline Mode**: Queue transfers for when devices reconnect\n- **Custom Sharing Rooms**: Create rooms where multiple users can share files simultaneously\n- **File Preview**: Preview files before downloading them\n- **Self-hosted Server Option**: Documentation for setting up your own signaling server with extended functionality\n\nWe welcome contributions and feature requests! Feel free to open an issue on GitHub to suggest new features or improvements.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit 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\nSteven Ching - [Website](https://stevenching.fr)\n\n---\n\nMade with ❤️ using React, WebRTC and TailwindCSS\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstvenchg%2Fzibra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstvenchg%2Fzibra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstvenchg%2Fzibra/lists"}