Skip to content

Deploy any React application by simply providing a GitHub repository URL

Notifications You must be signed in to change notification settings

ALOK9821/Hostify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hostify

  • A simple deployment service for React applications, inspired by Vercel. Allowing user to deploy React JS applications by providing a GitHub repository URL.
  • Developed the backend in TypeScript, divided into three microservices:
    • Upload, Deploy, and Request Handler.

Features

Upload Service

  • Setup: Built with Node.js, TypeScript, Express, and Redis.
  • Functionality:
    • Clone your repository.
    • Generate a unique session ID.
    • Upload files to Cloud Bucket (AWS S3 / Couldflare R2).
    • Use Redis queues to manage upload status.

Deploy Service

  • Setup: TypeScript-based service.
  • Functionality:
    • Download files from S3.
    • Build the React app into HTML/CSS.
    • Re-upload the build directory to S3.

Request Handler

  • Setup: Node.js project with TypeScript configurations.
  • Functionality:
    • Handle incoming requests.
    • Fetch content from S3 based on subdomains.
    • Serve the final HTML files with correct headers.

Getting Started

Prerequisites

  • Node.js
  • AWS / Couldflare account
  • Redis

Installation

Clone the repository:

  git clone https://github.com/yourusername/hostify.git
    cd hostify

Install backend & frontend dependencies:

  cd backend
    npm install
  cd frontend
    npm install

Set up environment variables:

AWS_ACCESS_KEY_ID=your_aws_access_key_id
AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key
REDIS_HOST=your_redis_host
REDIS_PORT=your_redis_port

Run Locally

Go to the any service directory

  cd deploy-service

Start the server

  npx tsc -b
  node dist/index.js

About

Deploy any React application by simply providing a GitHub repository URL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published