https://github.com/psidh/rooster
Rooster is an application that allows users to deploy React applications effortlessly with a single click on AWS S3 using ECS, ECR, Docker. It is designed for quick production testing and in-house testing, providing a seamless experience for developers who want to see their projects live without the hassle of manual deployments
https://github.com/psidh/rooster
aws-sdk docker ecr ecs kubernetes nextjs14 s3
Last synced: 6 months ago
JSON representation
Rooster is an application that allows users to deploy React applications effortlessly with a single click on AWS S3 using ECS, ECR, Docker. It is designed for quick production testing and in-house testing, providing a seamless experience for developers who want to see their projects live without the hassle of manual deployments
- Host: GitHub
- URL: https://github.com/psidh/rooster
- Owner: psidh
- Created: 2024-07-13T09:08:21.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-31T07:37:12.000Z (12 months ago)
- Last Synced: 2025-03-29T01:06:09.358Z (7 months ago)
- Topics: aws-sdk, docker, ecr, ecs, kubernetes, nextjs14, s3
- Language: TypeScript
- Homepage: https://rooster-chi.vercel.app
- Size: 2.84 MB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rooster
Rooster is an application that allows users to deploy React applications effortlessly with a single click. It is designed for quick production testing and in-house testing, providing a seamless experience for developers who want to see their projects live without the hassle of manual deployments.
https://github.com/user-attachments/assets/51a20abd-561c-4179-9df2-44b7c5fa18ba
## What It Solves
Rooster solves the problem of manual and time-consuming deployments for React applications. By automating the deployment process, it allows developers to focus more on building their applications and less on the infrastructure setup. It provides a quick and easy way to deploy applications, making it ideal for rapid testing and continuous integration workflows.
## How to Set It Up Locally
### Prerequisites
- Docker
- Node.js
- Kubernetes (Minikube or any other Kubernetes cluster)### Steps
1. **Clone the Repository**
```bash
git clone https://github.com//Rooster.git
cd rooster
```2. **Build the Docker Image**
```bash
sudo docker build -t your-dockerhub-username/your-image:tag .
```3. **Get your Redis Credentials**
You can get your Redis credentials from the [RedisLabs](https://redislabs.com/) website.
change the `.env` file in `api-server` folder with your Redis credentials.
4. ## **api-server env example**
```bash
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
CLUSTER=
TASK=
REDIS_URI=
REDIS_PASSWORD=
```5. ## **build-server env example**
```bash
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
GIT_REPOSITORY_URL=
```## With K8s
1. **Create Kubernetes Secrets**
Create a file named `credentials` with the following content:
```ini
[default]
aws_access_key_id=YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key=YOUR_AWS_SECRET_ACCESS_KEY
```2. Then create a Kubernetes Secret:
```bash
kubectl create secret generic aws-credentials --from-file=credentials
```3. **Deploy to Kubernetes**
Apply the Kubernetes manifests:
```bash
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
```4. **Run the Application Locally**
```bash
npm install
npm run dev
```The application will be available at `http://localhost:3000`.
## How to Use It
1. Open the application in your browser.
2. Enter the GitHub URL of your React project.
3. Click on the "Deploy" button.
4. Monitor the logs for deployment progress.
5. Once the deployment is complete, the preview URL will be displayed on the screen.## Tech Stack
- Next.js
- Kubernetes
- Docker
- AWS (ECS, ECR, S3)
- Node.js
- Redis## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.