A comprehensive Raspberry Pi management solution featuring a .NET MAUI desktop application, web-based GUI, and automated connection scripts for SSH and Telnet.
- .NET MAUI Desktop App: Cross-platform desktop application for managing Raspberry Pi devices
- Web GUI: Browser-based interface for monitoring and managing Pis
- Automated Scripts: PowerShell and Python scripts for SSH/Telnet connections
- Comprehensive Testing: 81 Playwright tests covering all functionality
- Cross-Platform Support: Windows, macOS, Linux, Android, iOS
dockerlabs/
βββ RaspberryPiManager/ # .NET MAUI desktop application
βββ web-gui/ # Python web server and frontend
βββ tests/ # Playwright test suite
βββ *.ps1 # PowerShell connection scripts
βββ *.py # Python utilities
βββ *.sh # Shell scripts for Pi setup
- .NET MAUI 9.0: Cross-platform desktop/mobile framework
- Playwright 1.56.1: End-to-end testing framework
- Python 3.14: Web server and utilities
- Node.js 20.19: Test runner and tooling
- TypeScript: Test configuration
- .NET SDK 9.0 or later (Download)
- Node.js 20.x or later (Download)
- Python 3.7+ (Download)
- Git (Download)
- Android SDK (for Android builds)
- Xcode (for iOS/macOS builds, macOS only)
- Visual Studio 2022 or Visual Studio Code
git clone https://github.com/Themis128/dockerlabs.git
cd dockerlabsNode.js dependencies:
npm install
npx playwright installPython dependencies:
# Python uses standard library only - no external packages needed.NET MAUI workload:
dotnet workload install mauiEdit pi-config.json with your Raspberry Pi network information:
{
"raspberry_pis": {
"1": {
"name": "Pi 1",
"ip": "192.168.0.48",
"mac": "B8-27-EB-74-83-19",
"connection": "Wired"
}
}
}npm testnpm run start:server
# Or directly:
python web-gui/server.pyVisit http://localhost:3000 in your browser.
cd RaspberryPiManager
dotnet build -f net9.0-windows10.0.19041.0Start the server and access the web interface:
python web-gui/server.pyFeatures:
- Dashboard with Pi statistics
- Raspberry Pi list and management
- Connection testing (SSH, Telnet)
- SD card management
- OS installation tools
Build and run the .NET MAUI application:
cd RaspberryPiManager
dotnet run -f net9.0-windows10.0.19041.0SSH Connection:
.\connect-ssh.ps1 1 # Connect to Pi 1
.\connect-ssh.ps1 2 # Connect to Pi 2Telnet Connection:
.\connect-telnet.ps1 1 # Connect to Pi 1 via Telnet
.\connect-telnet.ps1 2 # Connect to Pi 2 via TelnetTest Connections:
.\test-connections.ps1 # Test all Pi connections
.\test-ssh-auth.ps1 1 # Test SSH authentication for Pi 1See README.md for detailed connection documentation.
npm testnpm run test:gui # GUI tests only
npm run test:ui # Interactive test UI
npm run test:headed # Run with browser visible
npm run test:debug # Debug mode- 81 tests across 4 test files
- 3 browsers: Chromium, Firefox, WebKit
- Test types: Configuration, Connectivity, GUI, Scripts
cd RaspberryPiManager
dotnet build -f net9.0-windows10.0.19041.0dotnet build -f net9.0-androiddotnet build -f net9.0-iosdotnet build -c Release -f net9.0-windows10.0.19041.0- UPGRADE_SUMMARY.md - Framework upgrade details
- SSH-SETUP.md - SSH configuration guide
- QUICK-SETUP.md - Quick setup instructions
- FIX-AUTHENTICATION.md - Authentication troubleshooting
Edit pi-config.json to configure your Raspberry Pi devices:
- IP addresses
- MAC addresses
- Connection types (Ethernet/WiFi)
- Default usernames and ports
Edit playwright.config.ts to customize test settings:
- Browser configurations
- Timeouts
- Test directories
- Web server settings
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- .NET MAUI team for the cross-platform framework
- Playwright team for the excellent testing framework
- Raspberry Pi Foundation for the amazing hardware
For issues and questions:
- Open an issue on GitHub
- Check the documentation in the
docs/directory - Review troubleshooting guides in the repository
Made with β€οΈ for Raspberry Pi enthusiasts