RaspberryPi-Control is a Flutter application that allows you to control and monitor your Raspberry Pi remotely. You can execute commands, view system stats, manage SSH connections, and transfer files.
- Connect to Raspberry Pi via SSH
- Execute commands on the Raspberry Pi with an enhanced terminal interface
- View detailed system stats (CPU, memory, temperature, disk usage, network traffic, etc.)
- Manage multiple SSH connections
- Transfer files between your device and the Raspberry Pi
- Start, stop, and restart services on the Raspberry Pi
- Light and dark theme support with completely redesigned UI
- System log viewer for real-time diagnostics
- Network ping utility to test connectivity
- System processes monitor with detailed resource usage
- Active connections tracker for network analysis
- Enhanced dashboard with customizable metrics display
- Background connectivity that keeps your connection alive when app is minimized
- Auto-reconnect functionality when connection drops
- Configurable connection timeout settings
- SSH keep-alive to prevent dropped connections
- Security timeout to automatically disconnect after inactivity
- SSH compression option for slow networks
- Fully revamped terminal with enhanced functionality
- Command history navigation
- Advanced text selection and manipulation
- Better handling of complex shell operations
- Improved performance for lengthy outputs
- Browse remote files with intuitive interface
- Upload and download files between devices
- Toggle hidden files visibility
- Configurable file overwrite confirmation
- Custom default download directory
- Improved file operations with better error handling
- Completely redesigned user interface for better usability
- Custom terminal font size settings
- In-app update system with automatic update checking
- View release notes for new versions
- Better battery optimization management
- Improved navigation between app sections
- Flutter SDK: Install Flutter
- Dart SDK: Included with Flutter
- A Raspberry Pi with SSH enabled
-
Clone the repository:
git clone https://github.com/Lukas200301/RaspberryPi-Control.git cd RaspberryPi-Control
-
Install dependencies:
flutter pub get
-
Run the app:
flutter run
- Launch the app on your device or emulator.
- Navigate to the "Connections" tab to add a new SSH connection.
- Enter the connection details (name, host, port, username, password) and save the connection.
- Select the saved connection to connect to your Raspberry Pi.
- Use the "Terminal" tab to execute commands on the Raspberry Pi.
- Use the "Stats" tab to view detailed system stats, logs, processes, and network information.
- Use the "File Explorer" tab to transfer files between your device and the Raspberry Pi.
- Use the "Service Control" section in the "Stats" tab to start, stop, and restart services.
- Dark/Light Theme: Choose between dark and light mode for the app interface
- Widget Layout: Configure how information is displayed on the dashboard
- Terminal Font Size: Adjust text size for better readability in terminal
- Command History Size: Control how many previous commands are saved
- Log Filters: Configure which system logs to display
- Process Display: Set sorting and filtering options for the process viewer
- Network Monitor: Customize active connections display
- Default SSH Port: Set your preferred default port for new connections
- Keep Screen On: Prevent device from sleeping during active connections
- Auto-Reconnect: Automatically try to re-establish connection when dropped
- Reconnect Attempts: Configure how many times the app should try to reconnect
- Connection Retry Delay: Set time between reconnection attempts
- Connection Timeout: Maximum time allowed for SSH connections to establish
- SSH Keep-Alive: Send periodic signals to prevent connection drops
- Security Timeout: Automatically disconnect after a period of inactivity
- SSH Compression: Enable compression to save data on slower networks
- Show Hidden Files: Toggle visibility of files starting with a dot (.)
- Confirm File Overwrite: Choose whether to prompt before replacing existing files
- Default Download Directory: Set a fixed location for downloaded files
- Clear App Data: Reset all settings and remove saved connections
The app will maintain connections in the background. A notification will appear to indicate the app is running. For best performance:
- Allow the app to show notifications
- Exclude the app from battery optimization (prompted during first run)
- Grant necessary permissions when requested
The app includes a robust update management system:
- Automatic update checking on app launch
- Manual update checks from the Settings tab
- Direct in-app download and installation of updates
- Detailed release notes for new versions
- Open release page option for manual downloads
flutter
: The Flutter SDKdartssh2
: SSH client library for Dartflutter_background
: For keeping the connection alive in backgroundshared_preferences
: For storing connection details locallyconvert
: For encoding and decoding datafile_picker
: For picking files to uploadopen_file
: For opening downloaded filesfl_chart
: For displaying chartsandroid_intent_plus
: For launching Android-specific actionspermission_handler
: For managing app permissionsintl
: For internationalization and formattingpackage_info_plus
: For version informationurl_launcher
: For opening URLs and linkshttp
: For network requests and update checkingpath_provider
: For file system accessflutter_secure_storage
: For secure credential storagedevice_info_plus
: For device-specific informationxterm
: For the enhanced terminal experience
To build the app, run:
flutter build apk