Skip to content

Latest commit

 

History

History
225 lines (167 loc) · 5.64 KB

File metadata and controls

225 lines (167 loc) · 5.64 KB

🚀 DeployHub

Self-hosted PaaS for deploying any application with zero configuration

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

FeaturesQuick StartDeploymentTech StackContributing

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": "user@example.com", "password": "password" }

# Login
POST /api/auth/login
{ "email": "user@example.com", "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