Skip to content

Repository files navigation

PiPanel Logo

PiPanel

Remote Raspberry Pi manager for Android

Kotlin Jetpack Compose Min SDK License


✨ Features

🖥️ Dashboard

  • Live CPU temperature with color-coded indicator
  • Real-time CPU & RAM usage
  • Quick status overview at a glance

🐳 Docker

  • List all containers with status
  • Start / Stop / Restart containers
  • View container logs in real time

📡 Network Scanner

  • Scan the local network via SSH + nmap
  • Detects hostnames, IPs, MAC addresses and vendors
  • Smart device icons (smartphone, laptop, router, Pi...)
  • Auto-installs nmap if not present on the Pi

🌐 WireGuard

  • Toggle WireGuard VPN directly from the app
  • Peer status and connection info

⚡ GPIO

  • Control GPIO pins remotely
  • LED on/off with real-time feedback

🔌 Pi-hole

  • Enable / Disable Pi-hole with one tap
  • Home screen widget for quick toggle

💻 Terminal

  • Full VT100 / xterm-256color terminal emulator
  • PTY support with sticky modifier keys (Ctrl, Alt, etc.)
  • SSH session directly in the app

🔔 Notifications

  • CPU & RAM threshold alerts via WorkManager
  • Background monitoring with configurable thresholds

🔐 Security

  • Biometric authentication (fingerprint / face unlock)
  • SSH credentials stored securely
  • WireGuard VPN integration for remote access

🎨 UI / UX

  • Material You design with teal/cyan palette
  • Full dark & light theme support
  • Drag-and-drop shortcut reordering
  • Automatic update system with changelog

📋 Requirements

Requirement Details
Android 8.0+ (API 26)
Raspberry Pi Any model with SSH enabled
Network WireGuard VPN recommended for remote access
Pi packages nmap (auto-installed by the app if missing)

🚀 Getting Started

1. Enable SSH on your Raspberry Pi

sudo systemctl enable ssh
sudo systemctl start ssh

2. (Optional) Set up WireGuard for remote access

Install WireGuard on your Pi and configure a peer for your phone. The app connects over VPN when you're away from home.

3. Install PiPanel

Download the latest APK from the Releases page and install it on your Android device.

4. Configure the connection

On first launch, enter your Pi's:

  • IP address (local or WireGuard)
  • SSH port (default: 22)
  • Username
  • Password

🛠️ Tech Stack

Layer Technology
Language Kotlin
UI Jetpack Compose + Material 3
SSH JSch
Background tasks WorkManager
Auth AndroidX Biometric
Terminal Custom VT100/xterm-256color renderer
Drag & drop sh.calvin.reorderable

📁 Project Structure

app/src/main/java/com/rillmaster/pipanel/
├── MainActivity.kt                  # Entry point, navigation
├── OnboardingActivity.kt            # First-launch setup flow
├── SshClient.kt                     # SSH connection manager
├── SettingsManager.kt               # Credentials & config storage
├── ApiService.kt                    # API service interface
├── BiometricHelper.kt               # Biometric authentication
├── UpdateManager.kt                 # Automatic update system
│
├── DockerScreen.kt                  # Docker container management
├── FileManagerScreen.kt             # Remote file browser
├── TextEditorScreen.kt              # In-app text/file editor
├── TerminalScreen.kt                # VT100/xterm-256color terminal
├── MonitoringScreen.kt              # CPU / RAM / metrics overview
├── SensorDashboardScreen.kt         # Sensor data dashboard
├── GpioScheduleScreen.kt            # GPIO scheduling & controls
├── PwmSliderScreen.kt               # PWM control sliders
├── Wireguardscreen.kt               # WireGuard VPN toggle & info
├── Piholescreen.kt                  # Pi-hole toggle
├── Piholeconfigscreen.kt            # Pi-hole advanced config
├── UfwScreen.kt                     # UFW firewall management
├── Fail2BanScreen.kt                # Fail2Ban monitoring
├── LogsViewerScreen.kt              # System logs viewer
├── NotificationSettingsScreen.kt    # Notification thresholds config
│
├── MonitoringWorker.kt              # Background WorkManager worker
├── NotificationHelper.kt           # Notification builder/helper
├── WidgetUpdateService.kt           # Background widget refresh service
│
├── PiHoleWidget.kt                  # Pi-hole home screen widget
├── StatsWidget.kt                   # Stats home screen widget
├── SensorWidget.kt                  # Sensor home screen widget
├── WireGuardWidget.kt               # WireGuard home screen widget
│
└── ui/theme/                        # Material You theming

🔧 Building from Source

git clone https://github.com/RillMaster/PiPanel.git
cd PiPanel
./gradlew assembleDebug

The APK will be at app/build/outputs/apk/debug/app-debug.apk.


📄 License

MIT License — see LICENSE for details.

Made with ❤️ by RillMaster

About

PiPanel is an Android application for controlling and viewing information about your Raspberry Pi.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages