A Modern, Secure, and Scalable Self-Hosted CI/CD Deployment Platform
Features β’ Quick Start β’ Documentation β’ Architecture β’ Contributing
- Overview
- Key Features
- What Problems Does It Solve?
- Architecture
- Technology Stack
- Quick Start
- Installation
- Configuration
- Documentation
- Security
- RBAC System
- Project Structure
- Roadmap
- Contributing
- Support
- License
Deploy Center is a comprehensive, self-hosted CI/CD deployment platform designed to automate and streamline your deployment workflows. Built with modern technologies and security best practices, it provides enterprise-grade features while remaining simple to use and maintain.
- π Self-Hosted: Full control over your data and infrastructure
- π¨ Modern UI: Beautiful, responsive React dashboard
- π Enterprise Security: Role-Based Access Control (RBAC), JWT authentication, SSH key management
- π Real-Time Monitoring: Live deployment status, queue management, and notifications
- π Easy Setup: Quick installation and configuration
- π± Notifications: Discord, Slack, and custom webhook integrations
- π Auto Recovery: Automatic failure detection and rollback capabilities
- π Scalable: Designed to handle multiple projects and teams
-
Multi-Layer Authentication
- JWT-based access & refresh tokens
- Secure session management
- Password encryption with bcrypt
- API key authentication for external integrations
-
Role-Based Access Control (RBAC)
- 4 user roles: Admin, Manager, Developer, Viewer
- Granular permissions system
- Project-level access control
- Feature-based authorization
-
SSH Key Management
- Automated SSH key generation (ED25519/RSA)
- Encrypted private key storage (AES-256-GCM)
- Key rotation and lifecycle management
- GitHub Deploy Keys integration
-
Intelligent Deployment Pipeline
- Customizable multi-step pipelines
- Conditional step execution
- Variable substitution system
- Pre/post deployment hooks
-
Multiple Trigger Types
- GitHub webhook integration
- Manual deployment triggers
- Scheduled deployments (coming soon)
- API-triggered deployments
-
Queue Management
- Per-project deployment queues
- Automatic queue processing
- Priority-based execution
- Queue cancellation and retry
-
Real-Time Monitoring
- Live deployment status via WebSocket
- Detailed step-by-step logs
- Deployment history tracking
- Performance metrics and analytics
-
Multi-Project Support
- Unlimited projects
- Project-specific configurations
- Independent deployment pipelines
- Project archiving and activation
-
Project Members
- Team collaboration features
- Member role assignment (Owner/Member)
- Access control per project
- Audit trail for member changes
-
Configuration Management
- JSON-based configuration
- Environment variables support
- Secrets management
- Configuration versioning
-
Dashboard
- Overview of all projects
- Deployment statistics
- Success/failure rates
- Recent activity feed
-
Project Statistics
- Total deployments count
- Success rate percentage
- Average deployment duration
- Deployment timeline graphs
-
Audit Logging
- Complete activity tracking
- User action logs
- Project modification history
- Security event logging
-
Multi-Channel Support
- Discord webhooks
- Slack integration (coming soon)
- Email notifications (coming soon)
- Custom webhook endpoints
-
Smart Notifications
- Deployment status updates
- Error notifications
- Success confirmations
- Queue status changes
-
Modern Tech Stack
- TypeScript for type safety
- React 19 with modern hooks
- Material-UI components
- Socket.IO for real-time updates
-
Developer Tools
- Comprehensive API documentation
- Postman collection
- CLI tools (coming soon)
- SDK for integrations (coming soon)
-
Code Quality
- ESLint configuration
- Prettier formatting
- TypeScript strict mode
- Automated testing (in progress)
Problem: Manually deploying applications is time-consuming, error-prone, and doesn't scale.
Solution: Deploy Center automates the entire deployment process with customizable pipelines, reducing deployment time from hours to minutes.
Problem: Teams don't know who deployed what, when, or why deployments failed.
Solution: Complete audit trails, real-time monitoring, and detailed logs provide full transparency into every deployment.
Problem: Shared credentials and SSH keys create security vulnerabilities.
Solution: Encrypted SSH key storage, RBAC, and project-level access control ensure secure deployments.
Problem: Multiple developers can't safely deploy to the same project simultaneously.
Solution: Intelligent queue system prevents conflicts and ensures deployments run in the correct order.
Problem: Deployments scattered across different tools and scripts make management difficult.
Solution: Centralized platform for all deployments with unified configuration and monitoring.
Problem: When deployments fail, recovering the previous state is manual and risky.
Solution: Automatic failure detection, rollback capabilities, and deployment history for easy recovery.
Problem: All team members have the same access level, creating security risks.
Solution: Granular RBAC system with 4 roles and project-level permissions.
Problem: Teams aren't notified when deployments fail or succeed.
Solution: Multi-channel notifications (Discord, Slack) keep teams informed in real-time.
Deploy Center follows a modern three-tier architecture:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (React SPA) β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Dashboard β β Projects β β Settings β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Deployments β β Queue β β Users β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
WebSocket + REST API
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Backend (Node.js + Express) β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Auth β β Projects β β Deployments β β
β β Service β β Service β β Service β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Queue β β Pipeline β βNotification β β
β β Service β β Service β β Service β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Sequelize ORM
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Database (MySQL/MariaDB) β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Users β β Projects β βDeploymentsβ β Sessions β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β ApiKeys β β Members β βAuditLogs β β Settings β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
Frontend Layer
- React 19 + TypeScript
- Material-UI (MUI) components
- React Query for data fetching
- Socket.IO client for real-time updates
-
Backend Layer
- Express.js server
- Service-oriented architecture
- JWT authentication middleware
- WebSocket server
-
Data Layer
- MySQL/MariaDB database
- Sequelize ORM
- Automated migrations
- Connection pooling
-
External Integrations
- GitHub webhooks
- Discord notifications
- SSH Git operations
- Runtime: Node.js 18+
- Framework: Express.js
- Language: TypeScript 5.7
- ORM: Sequelize 6.37
- Database: MySQL 8.0 / MariaDB 11.2
- Authentication: JWT (jsonwebtoken)
- Encryption: bcryptjs, crypto (AES-256-GCM)
- Real-time: Socket.IO 4.8
- Process Manager: PM2
- Logging: Winston
- Validation: express-validator
- Framework: React 19
- Language: TypeScript 5.6
- UI Library: Material-UI (MUI) 7.5
- State Management: React Query (TanStack Query)
- Routing: React Router 7.6
- Charts: Recharts 2.15
- HTTP Client: Axios
- Build Tool: Vite 7.2
- Version Control: Git
- Package Manager: npm
- Code Quality: ESLint, Prettier
- Security Scanning: CodeQL, npm audit
- CI/CD: GitHub Actions
- Container: Docker (optional)
- Node.js >= 18.0.0
- MySQL >= 8.0 or MariaDB >= 11.2
- Git
- PM2 (for production)
# Clone the repository
git clone https://github.com/FutureSolutionDev/Deploy-Center-Server.git
cd Deploy-Center-Server
# Install backend dependencies
cd server
npm install
# Install frontend dependencies
cd ../client
npm install- Backend Configuration (
server/.env)
# Server
NODE_ENV=production
PORT=9090
# Database
DB_HOST=localhost
DB_PORT=3306
DB_NAME=deploy_center
DB_USER=your_db_user
DB_PASSWORD=your_db_password
# JWT Secrets (generate strong random strings)
JWT_ACCESS_SECRET=your_access_secret_here
JWT_REFRESH_SECRET=your_refresh_secret_here
# Encryption Key (32-byte hex string)
ENCRYPTION_KEY=your_64_character_hex_string_here
# Default Admin (created on first run)
DEFAULT_ADMIN_USERNAME=admin
DEFAULT_ADMIN_EMAIL=admin@example.com
DEFAULT_ADMIN_PASSWORD=change_me_immediately
# Optional: Discord Webhook
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...- Generate Encryption Key
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"cd server
# Run migrations
npm run migrate
# Or let the server create tables automatically on first run
npm run devDevelopment:
# Terminal 1 - Backend
cd server
npm run dev
# Terminal 2 - Frontend
cd client
npm run devProduction:
# Build frontend
cd client
npm run build
# Start backend with PM2
cd ../server
pm2 start ecosystem.config.js --env productionAccess the application at http://localhost:9090
Default credentials:
- Username:
admin - Password:
change_me_immediately(change this!)
- API Documentation - Complete API reference
- FEATURES_TODO.md - Feature tracking and roadmap
- VISION.md - Future vision and development plans
- Coding Standards - Code style and best practices
- Creating Projects - Complete guide to setting up your first project
- Deployment Workflows - Understanding the deployment process ( Soon )
- Pipeline Configuration - Advanced pipeline setup ( Soon )
- SSH Key Management - Working with private repositories ( Soon )
- Webhook Setup - Configuring GitHub/GitLab webhooks ( Soon )
- Environment Variables - Managing variables ( Soon )
- Notifications Setup - Configuring notification channels ( Soon )
- FAQ - Frequently asked questions
- Open Source Package - Release preparation
Deploy Center implements a comprehensive 4-tier role system:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Admin β
β β’ Full system access β
β β’ User management β
β β’ All projects (create, edit, delete, deploy) β
β β’ System settings β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Manager β
β β’ User management (create, edit users) β
β β’ All projects (create, edit, delete, deploy) β
β β’ Cannot modify system settings β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Developer β
β β’ Assigned projects only (edit, deploy) β
β β’ Cannot create/delete projects β
β β’ Cannot manage users β
β β’ Cannot access system settings β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Viewer β
β β’ Read-only access to assigned projects β
β β’ View deployments and logs β
β β’ Cannot trigger deployments β
β β’ Cannot modify anything β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Feature | Admin | Manager | Developer | Viewer |
|---|---|---|---|---|
| View Dashboard | β | β | β | β |
| View All Projects | β | β | β | β |
| View Assigned Projects | β | β | β | β |
| Create Project | β | β | β | β |
| Edit Project | β | β | β * | β |
| Delete Project | β | β | β | β |
| Deploy Project | β | β | β * | β |
| View Deployments | β | β | β * | β * |
| View Deployment Logs | β | β | β * | β * |
| Cancel Deployment | β | β | β * | β |
| Retry Deployment | β | β | β * | β |
| View Queue | β | β | β * | β * |
| Manage Queue | β | β | β * | β |
| Manage Users | β | β | β | β |
| Manage Project Members | β | β | β | β |
| View Sensitive Data | β | β | β | β |
| Manage API Keys | β | β | β | β |
| System Settings | β | β | β | β |
*Only for assigned projects
Projects support two member roles:
- Owner: Can manage project members (future feature)
- Member: Regular project access based on user role
deploy-center/
βββ client/ # Frontend React application
β βββ src/
β β βββ components/ # Reusable React components
β β βββ contexts/ # React contexts (Auth, Theme, etc.)
β β βββ hooks/ # Custom React hooks
β β βββ pages/ # Page components
β β βββ services/ # API service layer
β β βββ types/ # TypeScript type definitions
β β βββ utils/ # Utility functions
β βββ public/ # Static assets
β βββ package.json
β
βββ server/ # Backend Node.js application
β βββ src/
β β βββ Controllers/ # Route controllers
β β βββ Services/ # Business logic services
β β βββ Models/ # Sequelize models
β β βββ Middlewares/ # Express middlewares
β β βββ Routes/ # API routes
β β βββ Utils/ # Utility functions
β β βββ Types/ # TypeScript type definitions
β β βββ Migrations/ # Database migrations
β β βββ index.ts # Application entry point
β βββ .github/
β β βββ workflows/ # GitHub Actions workflows
β βββ public/ # Built frontend files
β βββ logs/ # Application logs
β βββ package.json
β
βββ CLAUDE.md # Project documentation for Claude AI
βββ README.md # This file
βββ VISION.md # Future roadmap and vision
βββ FEATURES_TODO.md # Feature tracking
βββ API_DOCUMENTATION.md # API reference
βββ *.md # Other documentation files
Deploy Center implements multiple layers of security:
- JWT-based token authentication
- 2FA Authentication
- Secure refresh token rotation
- Configurable token expiration
- Session management
- AES-256-GCM encryption for sensitive data
- bcrypt password hashing (10 rounds)
- Encrypted SSH private keys
- Secure environment variable handling
- CORS configuration
- Rate limiting (coming soon)
- Input validation and sanitization
- SQL injection prevention (Sequelize ORM)
- XSS protection
- Role-Based Access Control (RBAC)
- Project-level permissions
- API key authentication
- Audit logging
- CodeQL security analysis
- Dependency vulnerability scanning
- Automated security updates
- Code quality checks
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
npm test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the Coding Standards
- Use TypeScript strict mode
- Write meaningful commit messages
- Add tests for new features
See VISION.md and FEATURES_TODO.md for detailed roadmap.
- β Complete RBAC implementation
- β Project member management
- π Docker support
- π Slack notifications
- π Email notifications
- π Deployment rollback UI
- Multi-server deployment support
- Kubernetes integration
- Advanced analytics dashboard
- CLI tool
- Mobile app (React Native)
This project is licensed under the MIT License - see the LICENSE file for details.
- Express.js - Web framework
- React - UI library
- Material-UI - Component library
- Sequelize - ORM
- Socket.IO - Real-time communication
- All our contributors
- π§ Email: support@futuresolutionsdev.com
- π¬ Discord: Join our server
- π Issues: GitHub Issues
- π Documentation ( Coming Soon): Wiki
Made with β€οΈ by the Deploy Center Team



