Skip to content

Manage your Linux servers on the go! LSM is a Flutter-based mobile app providing a user-friendly interface for system monitoring and administration over SSH

License

Notifications You must be signed in to change notification settings

xamarth/LinuxServerManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LinuxServerManager Logo
LinuxServerManager
Command your servers, not your schedule. Admin anywhere, anytime.

πŸ” Overview

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."

Screenshots

πŸ” Understanding The Problem

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.

🌟 Why LSM?

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."

πŸš€ Key Features

Currently Available:

  • 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

Coming Soon:

  • User & Group Management
  • Service & Log Management
  • Package Management
  • Firewall Configuration
  • Container Management (Docker/Podman)
  • Disk & Network Management
  • VNC Support

🌱 Sustainable Development Goals

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 Features

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

πŸš€ Getting Started

Prerequisites

  • Flutter SDK (latest stable version)
  • Android Studio or VS Code with Flutter extensions
  • A test Linux server with SSH access

Installation

  1. Clone the repository:

    git clone https://github.com/xamarth/LinuxServerManager.git lsm
    
    cd lsm
  2. Install dependencies:

    flutter pub get
  3. Run the app:

    flutter run

Setting up for first time?

  1. Launch the app
  2. Navigate to SSH Manager and add your first server connection
  3. Set your preferred connection as default
  4. Explore the dashboard and features!

πŸ’‘ Project Architecture

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 point

πŸ“¬ Contact

Questions or feedback? Reach out at xamarth@gmail.com or report an issue GitHub Issues


Made with ❀️ by xamarth

Because server management shouldn't require a desk.

About

Manage your Linux servers on the go! LSM is a Flutter-based mobile app providing a user-friendly interface for system monitoring and administration over SSH

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published