Skip to content

Manage your Linux servers on the go! SysAdmin 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

prathameshkhade/SysAdmin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SysAdmin Logo

SysAdmin

Linux server management in your pocket

License: GPL v3 Flutter GitHub stars GitHub forks Contributions welcome

"Command your servers, not your schedule. Admin anywhere, anytime."

πŸ” Overview

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

Warning

THIS APP IS IN BETA, SO YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE IN OUR GITHUB REPOSITORY BY FILLING OUT THE ISSUE TEMPLATE.

PUTTING SYSADMIN, OR ANY FORK OF IT, INTO THE GOOGLE PLAY STORE VIOLATES THEIR TERMS AND CONDITIONS.

Screenshots

🌟 Why SysAdmin?

Traditional server management requires either physical access or an SSH session through a terminal, which can be inconvenient when you're on the move. SysAdmin 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
  • 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

πŸ” 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

SysAdmin addresses these issues by providing a comprehensive mobile solution that puts powerful server management tools in your pocket.

πŸ’‘ 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

πŸ›‘οΈ Security Features

Security is our top priority. SysAdmin 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

🌱 Sustainable Development Goals

SysAdmin 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

πŸš€ 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/prathameshkhade/SysAdmin.git
    cd SysAdmin
  2. Install dependencies:

    flutter pub get
  3. Run the app:

    flutter run

First-time Setup

  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!

🀝 Contributing

We welcome contributions from everyone! Whether you're fixing bugs, improving documentation, or proposing new features, your help is appreciated.

Please read our Contribution Guidelines before submitting a pull request.

"In open source, we feel strongly that to really do something well, you have to get a lot of people involved." - Linus Torvalds

πŸ“œ License

SysAdmin is Free Software: You can use, study, share, and improve it at will.

Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

πŸ“¬ Contact

Questions or feedback? Reach out at [email protected] or report an issue GitHub Issues


Made with ❀️ by prathameshkhade

Because server management shouldn't require a desk.