Skip to content

heymitali/remote-job-execution-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Remote Job Execution System

A full-stack web application for executing commands and scripts on remote servers. The system provides a modern React frontend for job management and a Node.js/Express backend for secure remote execution with database persistence.

Demo Video

YouTube Link: https://youtu.be/CQrktZWmk4M

Screenshot

Homepage

πŸš€ Features

Frontend (React + Vite)

  • Command Execution: Execute single commands on remote servers
  • Script Execution: Run multi-line scripts with preset templates
  • Real-time Job Monitoring: Track job status and view outputs in real-time
  • Job History: Complete history of executed jobs with filtering and search
  • Modern UI: Clean, responsive interface built with Tailwind CSS
  • Error Handling: Comprehensive error display and management

Backend (Node.js + Express)

  • SSH Command Execution: Secure remote command execution via SSH2
  • Job Management: Create, track, and manage remote job execution
  • MySQL Persistence: Store job history, status, and results
  • RESTful API: Clean API endpoints for frontend integration
  • Async Processing: Non-blocking command execution
  • Job Cancellation: Cancel running jobs
  • Health Monitoring: System health checks and status endpoints

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    HTTP/REST API    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    SSH    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 │◄──────────────────►│                 │◄─────────►│                 β”‚
β”‚  React Frontend β”‚                    β”‚ Node.js Backend β”‚           β”‚  Remote Server  β”‚
β”‚   (Port 5173)   β”‚                    β”‚   (Port 3000)   β”‚           β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                β”‚
                                                β”‚ SQL
                                                β–Ό
                                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                        β”‚                 β”‚
                                        β”‚ MySQL Database  β”‚
                                        β”‚                 β”‚
                                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“‹ Prerequisites

  • Node.js 16+
  • MySQL 8.0+
  • Git
  • SSH access to target remote server

��️ Installation & Setup

1. Clone the Repository

git clone https://github.com/heymitali/remote-job-execution-system.git
cd remote-job-execution-system

2. Backend Setup

cd backend

# Install dependencies
npm install

# Set up MySQL database
mysql -u root -p < database/setup.sql

# Create environment file
cp .env.example .env
# Edit .env with your configuration
# Start the backend server
npm start
# Or for development with auto-reload
npm run dev

3. Frontend Setup

cd frontend

# Install dependencies
npm install

# Start the development server
npm run dev

The application will be available at:

πŸ“ License

This project is licensed under the MIT License - see the LICENSE.md file for details.

πŸ‘₯ Authors

About

Web Application to execute commands on remote servers

Topics

Resources

License

Stars

Watchers

Forks

Contributors