Skip to content

whyom17/doppler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Doppler โ€“ Automated Web Deployment Platform

License: MIT Node.js Docker AWS

Doppler is an automated deployment platform that allows developers to deploy web applications simply by pushing code to GitHub. Built using AWS, Docker, Jenkins, GitHub Actions, Node.js, and Nginx, Doppler automates the entire process of building, containerizing, and hosting applications โ€” all while providing a clean dashboard for logs, deployment status, and URLs.


๐Ÿงพ Introduction

Doppler is a cloud-based automated deployment platform that lets users deploy apps instantly through GitHub integration. When a user pushes code, Doppler automatically:

  • Builds the project
  • Creates a Docker container
  • Deploys it on AWS infrastructure
  • Generates a deployment URL
  • Tracks status & logs in a dashboard

This makes Doppler ideal for:

  • Student projects
  • Hackathon submissions
  • Small developer teams
  • Full-stack web applications

โญ Features

๐Ÿ” User Authentication

  • JWT-based login
  • Optional GitHub OAuth (for repo access)

๐Ÿ”— GitHub Integration

  • Connect a repository
  • Auto-create a webhook
  • Trigger deployments on every push

๐Ÿ”ง CI/CD Automation

  • GitHub Actions for testing
  • Jenkins for build + dockerization
  • Automated deployment pipeline

๐Ÿณ Dockerized Isolation

Each project runs in its own container for security & scalability.

๐Ÿ“Š Deployment Dashboard

  • View deployments
  • Check live status
  • Access real-time logs
  • Open deployed URL

โ˜๏ธ AWS Cloud Hosting

  • EC2 for Jenkins + Docker runtime
  • Route 53 for subdomains
  • S3 for logs & artifacts

๐Ÿ— Architecture

              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚     User       โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                     โ”‚ Login / Create Project
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚  Doppler UI    โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                     โ”‚ API Calls
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚ Doppler Backendโ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          Create webhook โ”‚
                     โ”Œโ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                     โ”‚          GitHub Repo              โ”‚
                     โ””โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                        โ”‚ Push Event Triggers Webhook
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚ Doppler Webhook API โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                        โ”‚ Trigger Build
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚      Jenkins Server     โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                        โ”‚ Build โ†’ Dockerize โ†’ Run
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚   AWS EC2 (Docker Host) โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                        โ”‚ Expose via Reverse Proxy
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚  Subdomain / URL   โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿงฐ Tech Stack

Frontend

  • React.js
  • Axios
  • TailwindCSS (optional)

Backend

  • Node.js
  • Express.js
  • MongoDB / PostgreSQL
  • JWT Auth

CI/CD

  • GitHub Actions
  • Jenkins Pipelines

Cloud Infrastructure

  • AWS EC2
  • Nginx Reverse Proxy
  • Docker & Docker Compose
  • Route 53
  • S3 (optional)

๐Ÿ”„ System Workflow

  1. User logs in to Doppler dashboard
  2. User adds GitHub repo + config
  3. Doppler automatically creates a GitHub webhook
  4. User pushes code โ†’ GitHub triggers webhook
  5. Backend triggers Jenkins pipeline
  6. Jenkins:
    • Clones repo
    • Installs dependencies
    • Builds app
    • Builds Docker image
    • Runs container on EC2
  7. Backend stores deployment info
  8. Frontend shows updated deployment logs & URL

๐Ÿ“ Project Structure

doppler/
โ”‚
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ routes/
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/
โ”‚   โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ””โ”€โ”€ index.js
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ public/
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ jenkins/
โ”‚   โ””โ”€โ”€ Jenkinsfile (CI/CD pipeline)
โ”‚
โ””โ”€โ”€ docker/
    โ””โ”€โ”€ reverse-proxy/

๐Ÿš€ Getting Started

Prerequisites

  • Node.js v16+
  • Docker & Docker Compose
  • MongoDB or PostgreSQL
  • AWS Account
  • Jenkins Server
  • GitHub Account

1. Clone Repository

git clone https://github.com/whyom17/doppler.git
cd doppler

๐Ÿ›  Backend Setup

cd backend
npm install
cp .env.example .env
npm start

Environment Variables:

PORT=3000
MONGO_URI=your-db-uri
JWT_SECRET=your-secret
JENKINS_URL=http://your-jenkins:8080
JENKINS_USER=admin
JENKINS_TOKEN=xxxxxx

๐ŸŽจ Frontend Setup

cd frontend
npm install
npm start

๐Ÿงช CI/CD Pipeline

GitHub โ†’ Jenkins โ†’ Docker โ†’ Deployment

  • Jenkinsfile builds & dockerizes app
  • Docker container gets hosted on EC2
  • Backend receives callback from Jenkins
  • Dashboard updates deployment status

๐ŸŒ Deployment

Production Deployment Includes:

  • AWS EC2
  • Nginx Reverse Proxy
  • PM2 or systemd for backend
  • SSL via Let's Encrypt
  • Route 53 for domain + subdomains

๐Ÿ”ฎ Future Enhancements

  • Live logs streaming (WebSockets)
  • Support for custom domains
  • Build caching
  • Multi-cloud support (GCP / Azure)
  • Build artifacts storage on S3
  • Serverless functions (like Vercel Edge Runtime)
  • User-level rate limiting & quotas

๐Ÿ“„ License

MIT License - Feel free to use this project for learning or production.


โญ Star this repo if you find it helpful!

About

Vercel Clone

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors