Skip to content

FutureSolutionDev/Deploy-Center-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

185 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸš€ Deploy Center

Version Node License TypeScript React Build Status PRs Welcome Maintainability GitHub issues GitHub stars

A Modern, Secure, and Scalable Self-Hosted CI/CD Deployment Platform

Features β€’ Quick Start β€’ Documentation β€’ Architecture β€’ Contributing


πŸ“‹ Table of Contents


🎯 Overview

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.

Why Deploy Center?

  • πŸ”’ 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

✨ Key Features

πŸ” Security & Authentication

  • 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

πŸš€ Deployment Features

  • 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

πŸ“Š Project Management

  • 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

πŸ“ˆ Monitoring & Analytics

  • 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

πŸ”” Notifications

  • 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

πŸ› οΈ Developer Experience

  • 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)

πŸ’‘ What Problems Does It Solve?

1. Manual Deployment Complexity

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.

2. Lack of Deployment Visibility

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.

3. Security Concerns

Problem: Shared credentials and SSH keys create security vulnerabilities.

Solution: Encrypted SSH key storage, RBAC, and project-level access control ensure secure deployments.

4. Team Collaboration Issues

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.

5. No Central Control

Problem: Deployments scattered across different tools and scripts make management difficult.

Solution: Centralized platform for all deployments with unified configuration and monitoring.

6. Failed Deployment Recovery

Problem: When deployments fail, recovering the previous state is manual and risky.

Solution: Automatic failure detection, rollback capabilities, and deployment history for easy recovery.

7. Access Control Limitations

Problem: All team members have the same access level, creating security risks.

Solution: Granular RBAC system with 4 roles and project-level permissions.

8. Notification Gaps

Problem: Teams aren't notified when deployments fail or succeed.

Solution: Multi-channel notifications (Discord, Slack) keep teams informed in real-time.


πŸ—οΈ Architecture

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 β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Components

  1. Frontend Layer

    • React 19 + TypeScript
    • Material-UI (MUI) components
    • React Query for data fetching
    • Socket.IO client for real-time updates
  2. Backend Layer

    • Express.js server
    • Service-oriented architecture
    • JWT authentication middleware
    • WebSocket server
  3. Data Layer

    • MySQL/MariaDB database
    • Sequelize ORM
    • Automated migrations
    • Connection pooling
  4. External Integrations

    • GitHub webhooks
    • Discord notifications
    • SSH Git operations

πŸ› οΈ Technology Stack

Backend

  • 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

Frontend

  • 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

DevOps & Tools

  • Version Control: Git
  • Package Manager: npm
  • Code Quality: ESLint, Prettier
  • Security Scanning: CodeQL, npm audit
  • CI/CD: GitHub Actions
  • Container: Docker (optional)

πŸš€ Quick Start

Prerequisites

  • Node.js >= 18.0.0
  • MySQL >= 8.0 or MariaDB >= 11.2
  • Git
  • PM2 (for production)

Installation

# 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

Configuration

  1. 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/...
  1. Generate Encryption Key
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

Database Setup

cd server

# Run migrations
npm run migrate

# Or let the server create tables automatically on first run
npm run dev

Running the Application

Development:

# Terminal 1 - Backend
cd server
npm run dev

# Terminal 2 - Frontend
cd client
npm run dev

Production:

# Build frontend
cd client
npm run build

# Start backend with PM2
cd ../server
pm2 start ecosystem.config.js --env production

Access the application at http://localhost:9090

Default credentials:

  • Username: admin
  • Password: change_me_immediately (change this!)

πŸ“š Documentation

Core Documentation

Development Guides

User Guides

Additional Resources


πŸ” RBAC (Role-Based Access Control)

Deploy Center implements a comprehensive 4-tier role system:

Role Hierarchy

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 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                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Permission Matrix

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

Project-Level Access

Projects support two member roles:

  • Owner: Can manage project members (future feature)
  • Member: Regular project access based on user role

πŸ“ Project Structure

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

πŸ”’ Security

Deploy Center implements multiple layers of security:

Authentication

  • JWT-based token authentication
  • 2FA Authentication
  • Secure refresh token rotation
  • Configurable token expiration
  • Session management

Data Protection

  • AES-256-GCM encryption for sensitive data
  • bcrypt password hashing (10 rounds)
  • Encrypted SSH private keys
  • Secure environment variable handling

API Security

  • CORS configuration
  • Rate limiting (coming soon)
  • Input validation and sanitization
  • SQL injection prevention (Sequelize ORM)
  • XSS protection

Access Control

  • Role-Based Access Control (RBAC)
  • Project-level permissions
  • API key authentication
  • Audit logging

GitHub Security Workflows

  • CodeQL security analysis
  • Dependency vulnerability scanning
  • Automated security updates
  • Code quality checks

🎨 Screenshots

Dashboard

Dashboard Overview

Projects Management

Projects Page

Deployment Monitoring

Deployment Details

RBAC & User Management

User Management


🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests (npm test)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Code Style

  • Follow the Coding Standards
  • Use TypeScript strict mode
  • Write meaningful commit messages
  • Add tests for new features

πŸ“Š Roadmap

See VISION.md and FEATURES_TODO.md for detailed roadmap.

Coming Soon (Q4 2025 - Q1 2026)

  • βœ… Complete RBAC implementation
  • βœ… Project member management
  • πŸ”„ Docker support
  • πŸ”„ Slack notifications
  • πŸ”„ Email notifications
  • πŸ”„ Deployment rollback UI

Planned (Q2 2026)

  • Multi-server deployment support
  • Kubernetes integration
  • Advanced analytics dashboard
  • CLI tool
  • Mobile app (React Native)

πŸ“„ License

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


πŸ™ Acknowledgments


πŸ“ž Support


Made with ❀️ by the Deploy Center Team

⬆ Back to Top

About

Complete deployment automation platform with CI/CD integration, built with TypeScript, Express, and MariaDB.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages