|
1 | | -# 🛠️ **sysAdmin** - Mobile GUI for Linux System Administrators 🖥️ |
| 1 | +<div align="center"> |
| 2 | + <img src="assets/LogoRound.png" alt="SysAdmin Logo" width="180" /> |
| 3 | + <h1>SysAdmin</h1> |
| 4 | + <p><i><b>Linux server management in your pocket</b></i></p> |
2 | 5 |
|
3 | | -<img src="assets/LogoRound.png" alt="SysAdmin Logo" style="min-width: 10%; max-width: 25%" title="SysAdmin Logo"> |
| 6 | +<a href="https://github.com/prathameshkhade/SysAdmin/releases" alt="GitHub release"><img src="https://img.shields.io/github/release/prathameshkhade/SysAdmin.svg" ></a> |
| 7 | +[](LICENSE) |
| 8 | +[](https://flutter.dev/) |
| 9 | +[](https://github.com/prathameshkhade/SysAdmin/stargazers) |
| 10 | +[](https://github.com/prathameshkhade/SysAdmin/network/members) |
| 11 | +[](CONTRIBUTING.md) |
4 | 12 |
|
5 | | -Welcome to **sysAdmin** – a powerful mobile application built with Flutter and |
6 | | -Dart, designed to provide a graphical user interface for Linux system |
7 | | -administrators. sysAdmin enables admins to manage their Linux servers seamlessly |
8 | | -from their mobile devices. |
| 13 | +> *"Command your servers, not your schedule. Admin anywhere, anytime."* |
| 14 | +</div> |
9 | 15 |
|
10 | | -## 🚀 Project Overview |
| 16 | +## 🔍 Overview |
11 | 17 |
|
12 | | -**sysAdmin** is an open-source mobile application that simplifies the management |
13 | | -of Linux servers through an intuitive graphical interface. The application is |
14 | | -built to assist system administrators by offering mobile-friendly tools for |
15 | | -managing servers, users, and services efficiently from anywhere. |
| 18 | +**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. |
16 | 19 |
|
17 | | -With **sysAdmin**, you can: |
| 20 | +> *"When your server needs you, but your laptop is at home."* |
18 | 21 |
|
19 | | -- Manage user accounts and groups |
20 | | -- Maintain multiple SSH connections simultaneously |
21 | | -- Transfer files using SFTP |
22 | | -- Manage services, view logs, and create/edit cron jobs |
23 | | -- Install, update, and remove packages on your Linux server |
24 | | -- Much more! |
| 22 | +> [!warning] |
| 23 | +> <b>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.</b> |
| 24 | +> |
| 25 | +> <b>PUTTING SYSADMIN, OR ANY FORK OF IT, INTO THE GOOGLE PLAY STORE VIOLATES THEIR TERMS AND CONDITIONS.</b> |
25 | 26 |
|
26 | | -## 🎯 Scope of the Project |
| 27 | +## Screenshots |
27 | 28 |
|
28 | | -The primary aim of this project is to provide a **cross-platform mobile |
29 | | -solution** for Linux system administrators, allowing them to: |
| 29 | +[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/00.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/00.png) |
| 30 | +[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/01.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/01.png) |
| 31 | +[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/02.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/02.png) |
| 32 | +[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/03.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/03.png) |
| 33 | +[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/04.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/04.png) |
| 34 | +[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/05.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/05.png) |
| 35 | +[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/06.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/06.png) |
| 36 | +[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/07.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/07.png) |
| 37 | +[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/08.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/08.png) |
| 38 | +<br/><br/> |
| 39 | +[<img src="fastlane/metadata/android/en-US/images/tenInchScreenshots/09.png" width=405>](fastlane/metadata/android/en-US/images/tenInchScreenshots/09.png) |
| 40 | +[<img src="fastlane/metadata/android/en-US/images/tenInchScreenshots/10.png" width=405>](fastlane/metadata/android/en-US/images/tenInchScreenshots/10.png) |
30 | 41 |
|
31 | | -- Access servers remotely through SSH |
32 | | -- Manage users, files, and services without needing to access a terminal |
33 | | - directly |
34 | | -- Perform critical server management tasks on the go, from any location |
| 42 | +## 🌟 Why SysAdmin? |
35 | 43 |
|
36 | | -This project is intended for system administrators who prefer a mobile interface |
37 | | -to carry out essential administrative tasks or as an alternative to using a |
38 | | -traditional command-line interface. |
| 44 | +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: |
39 | 45 |
|
40 | | -## 🛠️ How sysAdmin Solves the Problem |
| 46 | +- [x] **Mobile-First GUI** for Linux server management |
| 47 | +- [x] **Multi-Server Support** - manage all your servers from one app |
| 48 | +- [x] **Secure Connections** using SSH/SFTP with password or key-based authentication |
| 49 | +- [x] **No Command Line Required** (but available when you need it!) |
| 50 | +- [x] **Environmentally Friendly** - uses less energy than keeping a laptop running |
41 | 51 |
|
42 | | -Traditionally, managing Linux servers requires either physical access or an SSH |
43 | | -session through a terminal, which may be inconvenient while on the go or for |
44 | | -small tasks. sysAdmin provides a **mobile GUI** for: |
| 52 | +> *"Because the command line should be a choice, not a necessity."* |
45 | 53 |
|
46 | | -- **`User and Group Management`**: Create, edit, or delete users and groups |
47 | | - effortlessly from your mobile device. |
48 | | -- **`SSH Management`**: Connect and manage multiple servers through SSH, all |
49 | | - from one interface. |
50 | | -- **`SFTP File Transfer`**: Seamlessly upload, download, and manage files on |
51 | | - your server using SFTP. |
52 | | -- **`Service and Log Management`**: Start, stop, or restart services and |
53 | | - access system logs with just a few taps. |
54 | | -- **`Cron Jobs`**: Quickly schedule and edit cron jobs with a simple |
55 | | - interface. |
56 | | -- **`Application Management`**: Install, update, remove, or search for |
57 | | - packages on your server without hassle. |
| 54 | +## 🚀 Key Features |
58 | 55 |
|
59 | | -**sysAdmin** saves time by eliminating the need for terminal access for routine |
60 | | -tasks and provides a **visual interface** that enhances usability. |
| 56 | +### Currently Available |
61 | 57 |
|
62 | | -## 📦 Project Structure |
| 58 | +- **Dashboard** - View server status, system metrics, and connection details at a glance |
| 59 | +- **SSH Manager** - Store and manage multiple server connections securely |
| 60 | +- **System Information** - Detailed hardware information about your connected server |
| 61 | +- **Real-time System Resource Monitoring** - Track CPU, RAM, and swap usage with graphs |
| 62 | +- **SFTP File Explorer** - Browse, upload, download, and manage files with ease |
| 63 | +- **Schedule Jobs** - Create one-time and recurring tasks |
| 64 | +- **Environment Variables** - Manage both local and global environment variables |
| 65 | +- **Terminal** - Full terminal access when you need the command line |
| 66 | + |
| 67 | +### Coming Soon |
| 68 | + |
| 69 | +- **User & Group Management** |
| 70 | +- **Service & Log Management** |
| 71 | +- **Package Management** |
| 72 | +- **Firewall Configuration** |
| 73 | +- **Container Management** (Docker/Podman) |
| 74 | +- **Disk & Network Management** |
| 75 | +- **VNC Support** |
| 76 | + |
| 77 | +## 🔍 Understanding The Problem |
| 78 | + |
| 79 | +As a Linux system administrator, you may have faced these challenges: |
| 80 | + |
| 81 | +- 💻 **Always needing a laptop** to connect to your servers |
| 82 | +- ⏱️ **Time wasted** turning on devices, connecting, and executing repetitive commands |
| 83 | +- 🔄 **Repetitive tasks** that could be simplified with a GUI |
| 84 | +- 🔋 **Energy consumption** from keeping a laptop running for quick server checks |
| 85 | + |
| 86 | +SysAdmin addresses these issues by providing a comprehensive mobile solution that puts powerful server management tools in your pocket. |
| 87 | + |
| 88 | +## 💡 Project Architecture |
63 | 89 |
|
64 | 90 | ```shell |
65 | 91 | lib/ |
@@ -103,113 +129,83 @@ lib/ |
103 | 129 | └── main.dart # App entry point |
104 | 130 | ``` |
105 | 131 |
|
106 | | -### Explanation of Key Folders: |
107 | | - |
108 | | -- **`core/`**: Contains essential elements like constants, themes, and |
109 | | - reusable widgets that are used across the app. |
| 132 | +## 🛡️ Security Features |
110 | 133 |
|
111 | | -- **`data/`**: Manages all data-related functionalities such as models, |
112 | | - repositories, and services (like networking or local storage). For instance, |
113 | | - models for user accounts, SSH connections, and other entities reside here. |
| 134 | +Security is our top priority. SysAdmin implements: |
114 | 135 |
|
115 | | -- **`domain/`**: Focuses on the business logic layer, separating concerns and |
116 | | - following clean architecture principles. This ensures scalability for future |
117 | | - features. |
| 136 | +- **Local Authentication** - Biometric/pin protection using your device's screen lock |
| 137 | +- **Encrypted Communications** - All server communications use SSH/SFTP encryption |
| 138 | +- **Secure Credential Storage** - Connection details are stored in your device's secure storage |
| 139 | +- **No Server-side Components** - Your credentials never leave your device |
118 | 140 |
|
119 | | -- **`presentation/`**: Deals with the UI aspect of your app, including the |
120 | | - various screens and reusable UI components specific to each feature. |
| 141 | +## 🌱 Sustainable Development Goals |
121 | 142 |
|
122 | | -- **`providers/`**: Handles the state management system, ensuring that the |
123 | | - app’s state is efficiently managed (whether you use Riverpod, Provider, or |
124 | | - another state management tool). |
| 143 | +SysAdmin contributes to several UN Sustainable Development Goals: |
125 | 144 |
|
126 | | -- **`routes/`**: Manages the navigation logic, defining how the app moves |
127 | | - between different screens. |
| 145 | +- **SDG 4 (Quality Education)** - Making server management more accessible to beginners |
| 146 | +- **SDG 8 (Decent Work and Economic Growth)** - Increasing productivity and supporting remote work |
| 147 | +- **SDG 9 (Industry, Innovation, and Infrastructure)** - Promoting innovation with mobile-friendly server management |
| 148 | +- **SDG 11 (Sustainable Cities and Communities)** - Supporting smart infrastructure with less energy usage |
| 149 | +- **SDG 17 (Partnerships for the Goals)** - Encouraging open-source collaboration |
128 | 150 |
|
129 | | -- **`config/`**: Stores configuration settings for different environments |
130 | | - (development, production, etc.). |
131 | | - |
132 | | -This structure will ensure that your app remains maintainable and scalable as |
133 | | -the project grows with additional features. |
134 | | - |
135 | | -## 🌟 Features |
136 | | - |
137 | | -- **User and Group Management**: Add, remove, or update user groups and |
138 | | - accounts on the server. |
139 | | -- **SSH Management**: Connect to multiple servers simultaneously and manage |
140 | | - SSH connections. |
141 | | -- **SFTP Support**: Upload, download, and manage files with SFTP |
142 | | - functionality. |
143 | | -- **Service Management**: Start, stop, or restart server services with ease. |
144 | | -- **Log Viewing**: View system logs for troubleshooting and monitoring server |
145 | | - health. |
146 | | -- **Cron Job Management**: Create and manage scheduled tasks (cron jobs) with |
147 | | - a user-friendly interface. |
148 | | -- **Application Management**: Manage installed packages on the server. |
149 | | - |
150 | | -## 💡 Getting Started |
| 151 | +## 🚀 Getting Started |
151 | 152 |
|
152 | 153 | ### Prerequisites |
153 | 154 |
|
154 | | -- [Flutter](https://flutter.dev/docs/get-started/install) installed on your |
155 | | - system. |
156 | | -- A Linux server with SSH access for testing. |
157 | | -- Basic knowledge of Dart and Flutter. |
| 155 | +- Flutter SDK (latest stable version) |
| 156 | +- Android Studio or VS Code with Flutter extensions |
| 157 | +- A test Linux server with SSH access |
158 | 158 |
|
159 | 159 | ### Installation |
160 | 160 |
|
161 | | -1. **Clone the Repository**: |
162 | | - |
163 | | - ```bash |
164 | | - git clone https://github.com/prathameshkhade/sysAdmin.git |
165 | | - cd sysAdmin |
166 | | - ``` |
167 | | - |
168 | | -2. **Install Dependencies**: |
169 | | - |
170 | | - ```bash |
171 | | - flutter pub get |
172 | | - ``` |
173 | | - |
174 | | -3. **Run the Application**: |
175 | | - ```bash |
176 | | - flutter run |
177 | | - ``` |
| 161 | +1. **Clone the repository:** |
| 162 | + ```bash |
| 163 | + git clone https://github.com/prathameshkhade/SysAdmin.git |
| 164 | + cd SysAdmin |
| 165 | + ``` |
178 | 166 |
|
179 | | -## 🛠️ Contribution Guidelines |
| 167 | +2. **Install dependencies:** |
| 168 | + ```bash |
| 169 | + flutter pub get |
| 170 | + ``` |
180 | 171 |
|
181 | | -Follow this [Contribution Guideline](CONTRIBUTION.md) to contribute in this project. |
| 172 | +3. **Run the app:** |
| 173 | + ```bash |
| 174 | + flutter run |
| 175 | + ``` |
182 | 176 |
|
183 | | -## 🔧 Future Roadmap |
| 177 | +### First-time Setup |
184 | 178 |
|
185 | | -We are actively working on the following features: |
| 179 | +1. Launch the app |
| 180 | +2. Navigate to SSH Manager and add your first server connection |
| 181 | +3. Set your preferred connection as default |
| 182 | +4. Explore the dashboard and features! |
186 | 183 |
|
187 | | -- **Server Health Monitoring:** Add server CPU, memory, and disk monitoring. |
188 | | -- **Real-Time Notifications:** Receive real-time alerts for server issues. |
189 | | -- **Custom Server Scripts:** Add the ability to run custom shell scripts via |
190 | | - the mobile app. |
191 | | -- **Process Management:** View, start, stop, and terminate running processes. |
192 | | -- **Disk Management:** View, format, partition, and mount disks. |
193 | | -- **Backup and Restore:** Create and restore system backups. |
194 | | -<!-- - **Multilingual Support**: Add localization for more languages. --> |
| 184 | +## 🤝 Contributing |
195 | 185 |
|
196 | | -> [!TIP] > **Feel free to suggest new features by opening a GitHub issue!** |
| 186 | +We welcome contributions from everyone! Whether you're fixing bugs, improving documentation, or proposing new features, your help is appreciated. |
197 | 187 |
|
198 | | -## 📄 License |
| 188 | +Please read our [Contribution Guidelines](CONTRIBUTING.md) before submitting a pull request. |
199 | 189 |
|
200 | | -This project is licensed under the GPLv3.0 License - see the [LICENSE](LICENSE) file |
201 | | -for details. |
| 190 | +> *"In open source, we feel strongly that to really do something well, you have to get a lot of people involved."* - Linus Torvalds |
202 | 191 |
|
203 | | -## 🛡️ Security |
| 192 | +## 📜 License |
| 193 | +<div align='center'> |
| 194 | + <a href="https://www.gnu.org/licenses/gpl-3.0.en.html"> |
| 195 | + <img src="https://www.gnu.org/graphics/gplv3-127x51.png" alt="GNU GPLv3 Image"> |
| 196 | + </a> |
| 197 | +</div> |
204 | 198 |
|
205 | | -If you discover any security vulnerabilities, please report them directly to the |
206 | | -repository maintainer. All security vulnerabilities will be promptly addressed. |
| 199 | +<p>SysAdmin is Free Software: You can use, study, share, and improve it at will. |
| 200 | +<p>Specifically you can redistribute and/or modify it under the terms of the [GNU General Public License](https://www.gnu.org/licenses/gpl.html) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. |
207 | 201 |
|
208 | | -## 📞 Contact |
| 202 | +## 📬 Contact |
209 | 203 |
|
210 | | -Feel free to reach out via GitHub issues or by emailing us at |
211 | | -[pkhade2865+sysadmin@gmail.com](mailto:pkhade2865+sysadmin@gmail.com). |
| 204 | +Questions or feedback? Reach out at [pkhade2865+sysadmin@gmail.com](mailto:pkhade2865+sysadmin@gmail.com) or report an issue [GitHub Issues](https://github.com/prathameshkhade/SysAdmin/issues) |
212 | 205 |
|
213 | 206 | --- |
214 | 207 |
|
215 | | -# We hope this project makes Linux server management more accessible and efficient for system administrators on the go! 🚀 |
| 208 | +<div align="center"> |
| 209 | + <h3><b>Made with ❤️ by the <i>prathameshkhade</i></b></h3> |
| 210 | + <p><i>Because server management shouldn't require a desk.</i></p> |
| 211 | +</div> |
0 commit comments