LinuxServerManager
Command your servers, not your schedule. Admin anywhere, anytime.
Linux Server Manager ( LSM ) is an open-source mobile application that puts the power of Linux server administration in your pocket. Built with Flutter, it provides a sleek, intuitive GUI for managing your Linux servers on the go - no laptop required.
"When your server needs you, but your laptop is at home."
As a Linux system administrator, you may have faced these challenges:
- 💻 Always needing a laptop to connect to your servers
- ⏱️ Time wasted turning on devices, connecting, and executing repetitive commands
- 🔄 Repetitive tasks that could be simplified with a GUI
- 🔋 Energy consumption from keeping a laptop running for quick server checks
LSM addresses these issues by providing a comprehensive mobile solution that puts powerful server management tools in your pocket.
Traditional server management requires either physical access or an SSH session through a terminal, which can be inconvenient when you're on the move. LSM solves this by providing:
- Mobile-First GUI for Linux server management
- Multi-Server Support - manage all your servers from one app
- Secure Connections using SSH/SFTP with password or key-based authentication
- No Command Line Required (but available when you need it!)
- Environmentally Friendly - uses less energy than keeping a laptop running
"Because the command line should be a choice, not a necessity."
- Dashboard - View server status, system metrics, and connection details at a glance
- SSH Manager - Store and manage multiple server connections securely
- User Management - Create, Update, Deletes or see information about users
- System Information - Detailed hardware information about your connected server
- Real-time System Resource Monitoring - Track CPU, RAM, and swap usage with graphs
- SFTP File Explorer - Browse, upload, download, and manage files with ease
- Schedule Jobs - Create one-time and recurring tasks
- Environment Variables - Manage both local and global environment variables
- Terminal - Full terminal access when you need the command line
- User & Group Management
- Service & Log Management
- Package Management
- Firewall Configuration
- Container Management (Docker/Podman)
- Disk & Network Management
- VNC Support
LSM contributes to several UN Sustainable Development Goals:
- SDG 4 (Quality Education) - Making server management more accessible to beginners
- SDG 8 (Decent Work and Economic Growth) - Increasing productivity and supporting remote work
- SDG 9 (Industry, Innovation, and Infrastructure) - Promoting innovation with mobile-friendly server management
- SDG 11 (Sustainable Cities and Communities) - Supporting smart infrastructure with less energy usage
- SDG 17 (Partnerships for the Goals) - Encouraging open-source collaboration
Security is our top priority. LSM implements:
- Local Authentication - Biometric/pin protection using your device's screen lock
- Encrypted Communications - All server communications use SSH/SFTP encryption
- Secure Credential Storage - Connection details are stored in your device's secure storage
- No Server-side Components - Your credentials never leave your device
- Flutter SDK (latest stable version)
- Android Studio or VS Code with Flutter extensions
- A test Linux server with SSH access
-
Clone the repository:
git clone https://github.com/xamarth/LinuxServerManager.git lsm cd lsm -
Install dependencies:
flutter pub get
-
Run the app:
flutter run
- Launch the app
- Navigate to SSH Manager and add your first server connection
- Set your preferred connection as default
- Explore the dashboard and features!
lib/
│
├── core/ # Core system-wide constants, utilities, and base classes
│ ├── constants/ # App-wide constants (colors, dimensions, strings, etc.)
│ ├── utils/ # Utility/helper functions (e.g., validators, formatters)
│ ├── theme/ # Theme and styling information
│ └── widgets/ # Shared reusable widgets across the app
│
├── data/ # Data layer for managing data sources
│ ├── models/ # Data models representing application entities (User, SSH Connection, etc.)
│ ├── repositories/ # Abstraction of data sources (local, remote API, etc.)
│ └── services/ # Logic for handling services like network, authentication, etc.
│
├── domain/ # Domain layer for business logic
│ ├── entities/ # Core business entities
│ ├── usecases/ # Application-specific business logic
│ └── interfaces/ # Interfaces for repositories or services
│
├── presentation/ # UI layer - Screens, Widgets, and State management
│ ├── screens/ # All major screens and pages (onboarding, dashboard, settings, etc.)
│ │ ├── onboarding/ # Screens related to onboarding
│ │ ├── dashboard/ # Main admin dashboard
│ │ ├── user_management/ # User and Group management screens
│ │ ├── ssh_management/ # SSH connections management screens
│ │ ├── sftp/ # File transfer (SFTP) management screens
│ │ └── ... # More feature screens (logs, services, cron jobs, etc.)
│ └── widgets/ # Reusable widgets (buttons, cards, dialogs) specific to the presentation layer
│
├── providers/ # State management (e.g., Riverpod, Provider, etc.)
│ └── ssh_state.dart # Global application state (loading, session, etc.)
│
├── routes/ # Application navigation and routing
│ └── app_routes.dart # App's route definitions and navigators
│
├── config/ # Environment-based configurations
│ ├── env/ # Separate config files for dev, staging, production
│ └── app_config.dart # Main configuration file
│
└── main.dart # App entry pointQuestions or feedback? Reach out at xamarth@gmail.com or report an issue GitHub Issues
















