main
miniPaaS
Test your deployments before production breaks.
Local PaaS for simulating production deployments on your machine. Catches port issues, build failures, and routing problems before they hit real servers.
Screenshots
How It Works
graph LR
A[Click Deploy] --> B[Clone from GitHub]
B --> C{Detect Project Type}
C -->|Node.js/Vite| D1[Generate Dockerfile]
C -->|Python/Flask| D1
C -->|Go| D1
C -->|Has Dockerfile| D2[Use Existing]
D1 --> E[Docker Build]
D2 --> E
E --> F[Start Container]
F --> G[Traefik Routes Traffic]
G --> H[Live at subdomain.localhost]
style A fill:#6366f1,stroke:#4f46e5,stroke-width:2px,color:#fff
style H fill:#10b981,stroke:#059669,stroke-width:2px,color:#fff
style G fill:#f59e0b,stroke:#d97706,stroke-width:2px,color:#fff
style E fill:#3b82f6,stroke:#2563eb,stroke-width:2px,color:#fff
GitHub → Build → Deploy → Test at yourapp.localhost
What It Does
- Auto-detects project type (Node.js, Python, Go, static sites)
- Builds Docker images and routes traffic through Traefik
- Shows real-time pipeline status with health checks
- Catches bad gateway errors, port mismatches, and build failures
- Manages environment variables and persistent storage
Requirements
- Docker Desktop
- GitHub account for OAuth
Quick Start
git clone https://github.com/wedsmoker/miniPaaS.git
cd miniPaaS
# Create GitHub OAuth app at https://github.com/settings/developers
# Use http://localhost:3000/auth/github/callback as callback URL
cp .env.example .env
# Add your GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET
docker-compose up -d
Open http://localhost:3000, connect your GitHub account, and start deploying.
Project Structure
miniPaaS/
├── control-plane/ # Node.js backend
│ ├── config/ # Database, Docker, GitHub config
│ ├── routes/ # API routes
│ ├── services/ # Business logic
│ ├── websockets/ # WebSocket server
│ ├── middleware/ # Express middleware
│ └── utils/ # Helper utilities
├── dashboard/ # Frontend
│ ├── css/ # Stylesheets
│ ├── js/ # JavaScript
│ └── assets/ # Static assets
├── database/ # SQL schemas
├── traefik/ # Traefik configuration
└── docker-compose.yml # Infrastructure orchestration
Supported Languages
Auto-detects Node.js, Python, Go, and static HTML sites. Existing Dockerfiles work too.
Architecture
Browser → Traefik → Control Plane + User Containers → PostgreSQL
License
MIT
Languages
JavaScript
81.7%
CSS
10.3%
HTML
7.8%
Dockerfile
0.2%

