DeployX is a full-stack deployment automation platform that enables centralized management of software installations, command execution, and system monitoring across multiple machines. Deploy, control, and monitor your entire infrastructure from a single dashboard.
Features β’ Architecture β’ Quick Start β’ Documentation β’ Contributors
DeployX is designed to simplify and automate the deployment process across distributed systems. Whether managing a handful of machines or an entire fleet, DeployX provides real-time control, automated backup/rollback capabilities, and comprehensive monitoringβall from an intuitive web dashboard.
graph LR
A[React Dashboard] -->|REST API| B[FastAPI Backend]
B -->|Socket.IO| C[Agent 1]
B -->|Socket.IO| D[Agent 2]
B -->|Socket.IO| E[Agent N]
B -->|PostgreSQL| F[Database]
- Frontend: React-based dashboard with real-time updates and intuitive UI
- Backend: FastAPI server with PostgreSQL database for orchestration and state management
- Agent: Lightweight Python client running on target machines with auto-update capabilities
- Communication: Real-time bidirectional communication via Socket.IO and REST APIs
- π¦ Software Deployment: Automated installation across multiple machines
- π Auto-Update: Self-updating agent mechanism for seamless updates
- π Scheduled Deployments: Schedule installations for specific times
- π Multi-Environment Support: Development, staging, and production environments
- π Backup & Rollback: Automatic backups before destructive operations
- π» Remote Shell Access: Execute terminal commands (CMD, PowerShell, Bash)
- π₯ Group Operations: Execute commands across device groups simultaneously
- β‘ Parallel & Sequential: Support for both parallel and sequential batch execution
- π― Selective Targeting: Run commands on specific machines or groups
- π Real-time Output: Live command output streaming
- π Resource Monitoring: CPU, RAM, disk, and network usage
- π Agent Discovery: Automatic agent detection via Zeroconf/mDNS
- β€οΈ Health Checks: Continuous heartbeat and status monitoring
- π Comprehensive Logging: Detailed activity and error logs
- π Real-time Notifications: Instant updates on deployment status
- π File Transfer: Upload/download files to/from remote machines
- ποΈ Directory Operations: Remote file system navigation and management
- π¦ Batch Operations: Multiple file operations in one go
- π JWT Authentication: Secure token-based authentication
- π Firebase Integration: Support for Google OAuth and social logins
- π€ User Management: Role-based access control
- π Secure Communication: Encrypted agent-server communication
- π Action Logging: Complete audit trail of all operations
- ποΈ Device Grouping: Organize machines into logical groups
- π Destructive Command Detection: Automatic backup before dangerous operations
- π·οΈ Software Inventory: Track installed software across machines
- π Dashboard Analytics: Visual insights into deployment status
- π State Management: Persistent tracking of deployment states
| Technology | Purpose |
|---|---|
| FastAPI | Modern Python web framework for APIs |
| PostgreSQL | Relational database for persistent storage |
| SQLAlchemy | ORM for database interactions |
| Socket.IO | Real-time bidirectional communication |
| JWT | Secure authentication tokens |
| APScheduler | Task scheduling and cron jobs |
| Uvicorn | ASGI server for production deployment |
| Technology | Purpose |
|---|---|
| React 18 | Component-based UI framework |
| Vite | Fast build tool and dev server |
| Axios | HTTP client for API communication |
| Socket.IO Client | Real-time event handling |
| Xterm.js | Terminal emulation in browser |
| Tailwind CSS | Utility-first CSS framework |
| Framer Motion | Animation library |
| Firebase | Authentication and OAuth integration |
| Technology | Purpose |
|---|---|
| Python 3.8+ | Core agent runtime |
| Socket.IO | Server communication |
| Zeroconf | Service discovery (mDNS) |
| psutil | System information gathering |
| aiohttp | Async HTTP client |
- Hosting: Render (Backend) + Vercel (Frontend)
- Version Control: Git
- Build Tools: PyInstaller (Agent executables)
- CI/CD: Automated deployment pipelines
- Python: 3.8 or higher
- Node.js: 16.x or higher
- PostgreSQL: 12 or higher
- Git: For cloning the repository
git clone https://github.com/your-username/DeployX.git
cd DeployXcd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Configure environment variables
cp .env.example .env
# Edit .env with your database credentials and settings
# Run database migrations (if applicable)
# python migrate.py
# Start the backend server
python start_server.pyBackend Environment Variables (.env):
DATABASE_URL=postgresql://user:password@localhost/deployx
SECRET_KEY=your-secret-key-here
ENVIRONMENT=development
FRONTEND_URL=http://localhost:5173
JWT_SECRET_KEY=your-jwt-secretcd frontend
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env
# Edit .env with your backend URL
# Start development server
npm run devFrontend Environment Variables (.env):
VITE_API_URL=http://localhost:8000
VITE_SOCKET_URL=http://localhost:8000cd agent
# Install dependencies
pip install -r requirements.txt
# Configure agent settings (optional)
# Edit config.json for custom server URL
# Run the agent
python main.py --server http://localhost:8000Or use the standalone executable (from Exe/ directory):
# Windows
DeployX-Agent.exe
# Linux
./DeployX-Agent
# macOS
./DeployX-Agent- Access Dashboard: Navigate to
http://localhost:5173 - Login: Create an account or use OAuth
- Start Agent: Run agent on target machine
- Verify Connection: Check dashboard for connected agents
- Execute Command: Test a simple command like
echo "Hello from DeployX!"
DeployX/
βββ agent/ # Python agent for target machines
β βββ main.py # Agent entry point
β βββ core/ # Core agent functionality
β β βββ backup_manager.py # Automatic backup system
β β βββ command_executor.py # Command execution engine
β β βββ connection.py # Server connection management
β β βββ destructive_detector.py # Dangerous command detection
β β βββ shell_manager.py # Shell session management
β βββ handlers/ # Event handlers
β β βββ socket_handlers.py # Socket.IO event handling
β βββ installers/ # Software installation
β β βββ downloader.py # File download utilities
β β βββ installer.py # Installation automation
β βββ network/ # Network utilities
β β βββ server_discoverer.py # Server discovery (mDNS)
β β βββ service_advertiser.py # Service advertisement
β βββ utils/ # Helper utilities
β βββ machine_id.py # Unique agent identification
β
βββ backend/ # FastAPI backend server
β βββ app/
β β βββ main.py # Application entry point
β β βββ agents/ # Agent management
β β β βββ routes.py # Agent API endpoints
β β β βββ crud.py # Database operations
β β β βββ schemas.py # Pydantic models
β β βββ auth/ # Authentication system
β β β βββ routes.py # Auth endpoints
β β β βββ database.py # User database
β β β βββ utils.py # JWT & password hashing
β β β βββ schemas.py # Auth models
β β βββ Deployments/ # Deployment management
β β β βββ routes.py # Deployment endpoints
β β β βββ executor.py # Deployment execution
β β β βββ models.py # Database models
β β β βββ scheduler.py # Scheduled deployments
β β βββ command_deployment/ # Command execution
β β β βββ routes.py # Command endpoints
β β β βββ executor.py # Command execution
β β β βββ queue.py # Command queue
β β β βββ strategies.py # Execution strategies
β β βββ grouping/ # Device grouping
β β β βββ route.py # Group endpoints
β β β βββ command_executor.py # Group command execution
β β β βββ crud.py # Group operations
β β β βββ models.py # Group models
β β βββ files/ # File management
β β β βββ routes.py # File endpoints
β β β βββ crud.py # File operations
β β βββ software/ # Software catalog
β β βββ Devices/ # Device management
β β βββ dashboard/ # Dashboard data
β βββ start_server.py # Server startup script
β
βββ frontend/ # React frontend
β βββ src/
β β βββ App.jsx # Main application component
β β βββ main.jsx # Entry point
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β β βββ Home.jsx # Landing page
β β β βββ Dashboard.jsx # Main dashboard
β β β βββ ... # Other pages
β β βββ contexts/ # React contexts
β β βββ services/ # API services
β β β βββ auth.js # Authentication service
β β βββ utils/ # Helper functions
β βββ public/ # Static assets
β βββ package.json # Dependencies
β βββ vite.config.js # Vite configuration
β
βββ executable_agent_file/ # Agent executable builder
β βββ agent_with_updater.py # Agent with auto-update
β βββ updater.py # Update mechanism
β βββ version.py # Version tracking
β βββ build_all.bat # Windows build script
β βββ build_all.sh # Linux/Mac build script
β
βββ Exe/ # Compiled agent executables
β βββ windows/ # Windows .exe
β βββ linux/ # Linux binaries
β βββ macos/ # macOS binaries
β
βββ LICENSE # MIT License
βββ README.md # This file
Once the backend is running, access the interactive API documentation:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
POST /api/auth/register- Register new userPOST /api/auth/login- User loginPOST /api/auth/google-login- Google OAuth loginPOST /api/auth/refresh- Refresh JWT token
GET /api/agents- List all agentsGET /api/agents/{agent_id}- Get agent detailsPOST /api/agents/{agent_id}/command- Execute commandDELETE /api/agents/{agent_id}- Remove agent
POST /api/deployments- Create deploymentGET /api/deployments- List deploymentsGET /api/deployments/{deployment_id}- Get deployment statusPOST /api/deployments/{deployment_id}/rollback- Rollback deployment
POST /api/groups- Create device groupGET /api/groups- List all groupsPOST /api/groups/{group_id}/execute- Execute command on group
Create config/config.json in agent directory:
{
"server_url": "http://your-server.com:8000",
"auto_reconnect": true,
"reconnect_interval": 5,
"heartbeat_interval": 30,
"enable_auto_update": true,
"update_check_interval": 3600,
"backup_enabled": true,
"backup_retention_days": 7,
"allowed_shells": ["cmd", "powershell", "bash"]
}Key environment variables:
| Variable | Description | Default |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | - |
SECRET_KEY |
Application secret key | - |
JWT_SECRET_KEY |
JWT signing key | - |
ENVIRONMENT |
Environment (dev/staging/prod) | development |
FRONTEND_URL |
Frontend URL for CORS | http://localhost:5173 |
MAX_COMMAND_TIMEOUT |
Max command execution time (seconds) | 300 |
cd backend
pytestcd agent
python test_backup_rollback.pycd frontend
npm test- Connect your GitHub repository
- Set environment variables
- Deploy using
start_server.py
- Import project from GitHub
- Configure build settings:
- Build Command:
npm run build - Output Directory:
dist
- Build Command:
- Set environment variables
- Deploy
- Build executables:
cd executable_agent_file # Windows build_all.bat # Linux/Mac ./build_all.sh
- Distribute executables from
Exe/directory
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow PEP 8 for Python code
- Use ESLint rules for JavaScript/React
- Write tests for new features
- Update documentation for API changes
This project is licensed under the MIT License - see the LICENSE file for details.
Chetan Chaudhari |
Nischay Chavan |
Parth Shikhare |
- FastAPI for the excellent web framework
- Socket.IO for real-time communication
- React team for the amazing UI library
- Open source community for various libraries used
β Star this repository if you find it helpful!
Made with β€οΈ by the DeployX Team