{"id":28939228,"url":"https://github.com/canstralian/piflash","last_synced_at":"2026-04-28T17:01:58.159Z","repository":{"id":300298763,"uuid":"1005674201","full_name":"canstralian/PiFlash","owner":"canstralian","description":"Raspberry Pi Image Flasher Web Application","archived":false,"fork":false,"pushed_at":"2025-10-05T04:03:29.000Z","size":102,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-05T05:39:40.188Z","etag":null,"topics":["raspberry-pi"],"latest_commit_sha":null,"homepage":"https://huggingface.co/spaces/S-Dreamer/piflash","language":"JavaScript","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/canstralian.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-20T16:02:11.000Z","updated_at":"2025-07-03T07:14:37.000Z","dependencies_parsed_at":"2025-10-05T05:32:06.391Z","dependency_job_id":"ff0e9fbf-2463-4971-98d5-9264ee7d83d8","html_url":"https://github.com/canstralian/PiFlash","commit_stats":null,"previous_names":["canstralian/piflash"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/canstralian/PiFlash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canstralian%2FPiFlash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canstralian%2FPiFlash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canstralian%2FPiFlash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canstralian%2FPiFlash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/canstralian","download_url":"https://codeload.github.com/canstralian/PiFlash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canstralian%2FPiFlash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32390067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: 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":["raspberry-pi"],"created_at":"2025-06-23T00:07:18.470Z","updated_at":"2026-04-28T17:01:58.154Z","avatar_url":"https://github.com/canstralian.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\nlicense: apache-2.0\ntitle: PiFlash\nsdk: static\nemoji: 📈\ncolorFrom: red\ncolorTo: green\nshort_description: A modern, web-based tool for flashing Raspberry Pi OS images\n---\n\n# PiFlash - Raspberry Pi Image Flasher Web Application\n\nA modern, web-based tool for flashing Raspberry Pi OS images to SD cards. Built with vanilla JavaScript, HTML5, and Tailwind CSS for maximum compatibility and ease of use.\n\n## Features\n\n- **Device Detection**: Automatically detects available storage devices\n- **OS Image Library**: Browse recommended and community OS images\n- **Custom Image Support**: Upload and flash your own image files\n- **Progress Tracking**: Real-time progress monitoring with detailed status\n- **Configuration Options**: Pre-configure Wi-Fi, SSH, and hostname settings\n- **Responsive Design**: Works on desktop and mobile devices\n- **No Installation Required**: Runs directly in your web browser\n\n## Quick Start\n\n1. **Clone or download** this repository\n2. **Open index.html** in your web browser\n3. **Select a storage device** (SD card or USB drive)\n4. **Choose an OS image** from the library or upload your own\n5. **Configure settings** (optional): Wi-Fi, SSH, hostname\n6. **Click Flash** to start the process\n\n## Development Setup\n\n```bash\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n\n# Run tests\nnpm test\n```\n\n## Browser Compatibility\n\n- Chrome 80+\n- Firefox 75+\n- Safari 13+\n- Edge 80+\n\n## Supported File Formats\n\n- `.img` - Raw disk images\n- `.zip` - Compressed disk images\n- `.gz` - Gzip compressed images\n- `.xz` - XZ compressed images\n\n## Security Considerations\n\n⚠️ **Important**: This application requires access to storage devices, which may require elevated permissions or browser API access. Always verify the source and integrity of image files before flashing.\n\n### Web API Requirements\n\nThis application uses the following web APIs:\n- **File System Access API** (Chrome 86+) - For device access\n- **Web USB API** (Experimental) - For USB device communication\n- **File API** - For reading uploaded files\n\n## Configuration Options\n\n### Wi-Fi Setup\n- **SSID**: Network name (max 32 characters)\n- **Password**: Network password (WPA/WPA2)\n\n### SSH Configuration\n- **Disabled**: SSH access turned off (default)\n- **Password**: Enable SSH with password authentication\n- **Key**: Enable SSH with public key authentication only\n\n### System Settings\n- **Hostname**: Custom device name (default: raspberrypi)\n- **Validation**: Verify write after flashing\n- **Compression**: Auto-detect and handle compressed images\n\n## Flashing Process\n\n1. **Device Selection**: Choose target storage device\n2. **Image Preparation**: Download or prepare the OS image\n3. **Unmounting**: Safely unmount the device\n4. **Writing**: Write the image data to the device\n5. **Verification**: Verify the written data (if enabled)\n6. **Ejection**: Safely eject the device when complete\n\n## File Structure\n\n```\npiflash-web-app/\n├── index.html          # Main application interface\n├── styles.css          # Custom CSS styles and animations\n├── js/\n│   └── app.js         # Main application logic\n├── package.json        # Project configuration\n├── README.md          # This file\n├── .gitignore         # Git ignore rules\n└── pre-commit.sh      # Pre-commit hooks\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### Development Guidelines\n\n- Use **ES6+** JavaScript features\n- Follow **responsive design** principles\n- Add **comprehensive comments** for complex logic\n- Include **unit tests** for new functionality\n- Maintain **cross-browser compatibility**\n\n## Testing\n\nThe application includes unit tests for core functionality:\n\n```bash\n# Run all tests\nnpm test\n\n# Test specific components\nnpm test -- --testNamePattern=\"device\"\n```\n\n## Troubleshooting\n\n### Common Issues\n\n**Device not detected**\n- Ensure the SD card is properly inserted\n- Try refreshing the device list\n- Check browser permissions for device access\n\n**Flash process fails**\n- Verify the image file is not corrupted\n- Ensure sufficient space on the target device\n- Try using a different SD card\n\n**Browser compatibility**\n- Use a modern browser with File System Access API support\n- Enable experimental web platform features if required\n- Clear browser cache and cookies\n\n### Browser Permissions\n\nSome browsers may require explicit permission to access storage devices:\n1. Navigate to browser settings\n2. Find \"Site permissions\" or \"Privacy and security\"\n3. Allow file system access for this application\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- **Raspberry Pi Foundation** for the excellent hardware and documentation\n- **Tailwind CSS** for the utility-first CSS framework\n- **Font Awesome** for the comprehensive icon library\n- **Community contributors** who help improve this tool\n\n## Disclaimer\n\nThis tool is provided as-is without warranty. Always backup important data before flashing storage devices. The authors are not responsible for data loss or hardware damage.\n\n---\n\n**Happy Flashing!** 🥧✨","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanstralian%2Fpiflash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanstralian%2Fpiflash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanstralian%2Fpiflash/lists"}