Skip to content

CodeKage25/deployhub

Repository files navigation

πŸš€ DeployHub

Self-hosted PaaS for deploying any application with zero configuration

Push your code. We build, containerize, and deploy it automatically.

Features β€’ Quick Start β€’ Deployment β€’ Tech Stack β€’ Contributing

License Node Docker


✨ Features

  • πŸ”§ Zero Config Deployments - Push your code, we detect the framework and deploy
  • 🌐 9 Language Support - Node.js, Python, Go, Ruby, Rust, Java, PHP, Elixir, Static
  • 🐳 Docker Native - Custom Dockerfile? We'll use it. None? We generate one
  • πŸ“Š IaC Visualizer - Upload Terraform/CloudFormation and see interactive diagrams
  • πŸ“ Real-time Logs - Watch your builds and deployments live
  • πŸ” Environment Variables - Securely manage secrets per project
  • 🎨 Modern Dashboard - Beautiful dark-themed UI with responsive design

πŸ“Έ Screenshots

View Screenshots

Dashboard

Dashboard

Project Details

Project Details

IaC Visualizer

IaC Visualizer

πŸš€ Quick Start

Prerequisites

Development

# Clone the repository
git clone https://github.com/Codekage25/deployhub.git
cd deployhub

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:5173 - API runs on port 3001.

Docker (Production)

# Clone and deploy
git clone https://github.com/Codekage25/deployhub.git
cd deployhub

# Start with Docker Compose
docker-compose up -d --build

Open http://localhost

🌍 Deployment

For production deployment on a VPS, see DEPLOY.md.

Quick deploy to any VPS (DigitalOcean, Hetzner, Linode):

# Upload to server
scp -r . root@YOUR_SERVER:/opt/deployhub

# SSH and run setup
ssh root@YOUR_SERVER
cd /opt/deployhub
chmod +x setup-vps.sh
./setup-vps.sh

πŸ—οΈ Architecture

deployhub/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ api/          # Fastify backend
β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”‚   β”œβ”€β”€ routes/       # API endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ services/     # Builder, deployer, IaC parser
β”‚   β”‚   β”‚   └── db/           # SQLite database
β”‚   β”‚   └── package.json
β”‚   β”‚
β”‚   └── web/          # React frontend
β”‚       β”œβ”€β”€ src/
β”‚       β”‚   β”œβ”€β”€ pages/        # Dashboard, Projects, IaC
β”‚       β”‚   β”œβ”€β”€ components/   # Reusable UI components
β”‚       β”‚   └── api/          # API client
β”‚       └── package.json
β”‚
β”œβ”€β”€ packages/
β”‚   └── shared/       # Shared types
β”‚
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ Dockerfile
└── nginx.conf

πŸ› οΈ Tech Stack

Backend:

Frontend:

Infrastructure:

πŸ“š API Reference

Authentication

# Register
POST /api/auth/register
{ "email": "[email protected]", "password": "password" }

# Login
POST /api/auth/login
{ "email": "[email protected]", "password": "password" }

Projects

# List projects
GET /api/projects

# Create project
POST /api/projects
{ "name": "my-app", "repoUrl": "https://github.com/user/repo", "branch": "main" }

# Deploy project
POST /api/deployments/trigger/:projectId

IaC

# Parse IaC file
POST /api/iac/parse
{ "name": "my-infra", "sourceType": "terraform", "content": "..." }

# List diagrams
GET /api/iac/diagrams

🀝 Contributing

Contributions are welcome! Please read our contributing guidelines.

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

Development Setup

# Install dependencies
npm install

# Run tests
npm test

# Run linter
npm run lint

πŸ“„ License

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

πŸ™ Acknowledgments

  • Inspired by Heroku, Render, Railway
  • Built with ❀️ for developers who want to own their deployment infrastructure

If you find this useful, please ⭐ star the repo!

Made with ❀️ by Abdulkareem Babatunde

About

Self-hosted PaaS for deploying any application with zero configuration

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors