https://github.com/shubho0908/deployninja
Automate deployments from GitHub with DeployNinja! Support for React, Vue, and Angular, plus continuous integration, custom subdomains, and monitoring ;)
https://github.com/shubho0908/deployninja
aws-ecr aws-ecs aws-s3 clickhouse kafka nextjs postgres reverse-proxy
Last synced: 5 months ago
JSON representation
Automate deployments from GitHub with DeployNinja! Support for React, Vue, and Angular, plus continuous integration, custom subdomains, and monitoring ;)
- Host: GitHub
- URL: https://github.com/shubho0908/deployninja
- Owner: shubho0908
- Created: 2024-12-14T13:08:43.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-01-30T05:30:56.000Z (8 months ago)
- Last Synced: 2025-05-08T03:49:46.693Z (5 months ago)
- Topics: aws-ecr, aws-ecs, aws-s3, clickhouse, kafka, nextjs, postgres, reverse-proxy
- Language: TypeScript
- Homepage:
- Size: 938 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DeployNinja — Deployment service for web applications
A robust deployment platform that enables automated deployments directly from GitHub repositories. This platform supports multiple frameworks (React, Vue, Angular) with features like continuous integration, custom subdomains, and comprehensive deployment monitoring.
## Demo
https://github.com/user-attachments/assets/f4484fee-af91-48e9-9272-7fa08c0879e6
## Features
- GitHub Authentication Integration
- Direct GitHub Repository Deployment
- Continuous Integration with Automatic Redeployment
- Custom Subdomain Configuration
- Multi-Framework Support (React, Vue, Angular)
- Project Management Dashboard
- Detailed Deployment Logs and History
- Real-time Build Log Streaming## Technology Stack
- **Frontend & API**: Next.js
- **Database**:
- PostgreSQL (NeonDB) - Primary database
- ClickHouse - Build Logs storage
- **State Management**: Redux Toolkit
- **Cloud Services**:
- AWS S3 - Artifact storage
- AWS ECR/ECS - Container management
- **Message Broker**: Apache Kafka - Build log pipeline
- **Additional Services**: Node.js reverse proxy for subdomain handling## Project Structure
The project consists of three main components:
1. **Deployment App** (Next.js)
2. **Build Server**
3. **S3 Reverse Proxy**## Local Development Setup
### 1. Clone the Repository
```bash
git clone https://github.com/shubho0908/Deployment-app
cd deployment-app
```### 2. Build Server Setup
```bash
cd build-server
# Build Docker image
docker build -t build-server .
# Push to AWS ECR
aws ecr get-login-password --region [region] | docker login --username AWS --password-stdin [aws-account-id].dkr.ecr.[region].amazonaws.com
docker tag build-server:latest [aws-account-id].dkr.ecr.[region].amazonaws.com/build-server:latest
docker push [aws-account-id].dkr.ecr.[region].amazonaws.com/build-server:latest
```### 3. Deployment App Setup
```bash
cd ../deployment-app
npm install
# For development
npm run dev
# For production
npm run build
npm start
```### 4. S3 Reverse Proxy Setup
```bash
cd ../s3-reverse-proxy
npm install
node server.js
```### 5. Port Forwarding Setup
Set up port forwarding using either:
- VSCode's Port Tunneling
- ngrokUpdate the `WEBHOOK_BASE_URL` in your environment variables with the forwarding URL.
## Environment Variables
Each directory contains its own `.env.example` file. Copy the respective `.env.example` to `.env` in each directory and update the values according to your setup.