Skip to content

Dynamo2k1/Remote-Control-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Remote Control Management System (RCMS)

RCMS is a powerful, secure, and centralized platform designed for system administrators to manage networked fleets of devices. It automates critical IT operationsβ€”from software installation to service managementβ€”through a simple YAML configuration, all visualized in a modern real-time dashboard.


🌟 Why RCMS?

Managing multiple remote servers manually via SSH is tedious and error-prone. RCMS solves this by allowing you to:

  • Orchestrate Fleets: Push commands to multiple servers simultaneously.
  • Declarative Configuration: Define what you want (e.g., "nginx should be running") using simple YAML files, and let RCMS handle the how.
  • Live Feedback: Watch command execution logs and exit statuses in real-time via WebSockets.

✨ Key Features

  • πŸ” Secure Authentication: JWT-based login system with role-based access (Admin/User).

  • ⚑ specific Actions: detailed control over system services:

  • start, stop, restart services.

  • enable, disable boot-time services.

  • install new packages automatically.

  • status checks for health monitoring.

  • πŸ“„ YAML-Based Tasking: No complex scripting required. Just upload a declarative .yaml file.

  • πŸ“‘ Real-Time Monitoring: WebSocket integration provides instant feedback on task execution from remote servers.

  • 🐳 Dockerized Architecture: Fully containerized backend and frontend for instant deployment.

  • πŸ–₯️ Modern UI: A responsive React frontend using MDB Bootstrap for a sleek user experience.


πŸ› οΈ Tech Stack

Backend

  • Framework: Python Flask (Factory Pattern)
  • Networking: Paramiko for SSH tunneling, Socket.IO for real-time streams.
  • Database: SQLite (SQLAlchemy ORM).
  • Security: Flask-JWT-Extended for token-based auth.

Frontend

  • Library: React.js (v18).
  • Styling: MDB React UI Kit & Custom CSS.
  • State: React Hooks & Context API.
  • Communication: Axios (REST) & Socket.io-client (WebSockets).

DevOps

  • Containerization: Docker & Docker Compose.

πŸš€ Getting Started

Prerequisites

  • Docker Desktop installed on your machine.
  • Git.

Installation

  1. Clone the Repository
git clone https://github.com/Dynamo2k1/Remote-Control-Management-System.git
cd Remote-Control-Management-System/RCMS
  1. Launch with Docker Compose
docker-compose up --build

This will start the Backend on port 5000 and the Frontend on port 3000. 3. Access the Application


πŸ”‘ Default Credentials

Upon first startup, the system automatically creates these default accounts:

Role Username Password
Administrator admin admin123
Standard User user user123

⚠️ Note: For security, these credentials are reset/managed in app.py. It is recommended to change these in a production environment.


πŸ“‚ Configuration Guide (YAML)

RCMS uses a declarative YAML format to instruct remote devices.

Supported Actions

Action Description Example
install Installs a package (apt) install: "nginx"
start Starts a systemd service start: "apache2"
stop Stops a systemd service stop: "docker"
enable Enables service on boot enable: "ssh"
status Checks service status status: "nginx"

Example tasks.yaml

Create a file named tasks.yaml and upload it via the dashboard:

devices:
  # Device 1: Web Server
  - ip: "192.168.1.50"
    username: "ubuntu"
    password: "securepassword123"
    actions:
      - install: "nginx"      # Install Nginx
      - enable: "nginx"       # Enable it on boot
      - start: "nginx"        # Start the service

  # Device 2: Database Server
  - ip: "192.168.1.51"
    username: "admin"
    password: "dbpassword456"
    actions:
      - status: "postgresql"  # Check DB status
      - stop: "apache2"       # Ensure Apache is off

πŸ“‚ Project Structure

RCMS/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ instance/          # SQLite Database
β”‚   β”œβ”€β”€ routes/            # API Endpoints (Auth, Devices, Files)
β”‚   β”œβ”€β”€ utils/             # SSH Executor & YAML Parsers
β”‚   β”œβ”€β”€ app.py             # App Factory & Config
β”‚   β”œβ”€β”€ Dockerfile         # Python Container Logic
β”‚   └── requirements.txt   # Python Dependencies
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/            # Static Assets
β”‚   β”œβ”€β”€ src/               # React Components & Pages
β”‚   β”œβ”€β”€ Dockerfile         # Node.js Container Logic
β”‚   └── package.json       # JS Dependencies
β”œβ”€β”€ docker-compose.yml     # Container Orchestration
└── README.md              # Documentation

🀝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“§ Contact

Project Maintainer: Dynamo2k1

Email: dynamo89247@gmail.com

GitHub: github.com/Dynamo2k1


πŸ“ License

Distributed under the MIT License. See LICENSE for more information.


Built with ❀️ by Dynamo2k1

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors