Build, deploy, and scale your Express and React apps with unmatched ease from your very first user to your billionth.
- Node.js: Backend framework for handling API requests and business logic.
- React.js: Frontend framework for building responsive user interfaces.
- Docker: Containerization for running isolated and scalable application environments.
- Redis: In-memory database used for caching and message queue management.
- MongoDB: NoSQL database for managing user and application data.
- AWS Lambda & ECS: For running backend services and deploying Docker containers.
- AWS S3 & Route 53: Hosting static assets and managing custom subdomains.
- BullMQ: Message queue system for handling background tasks and scaling job processing.
-
Automated Deployment: Simplify the deployment of both React frontends and Express backends. With just a few steps, users can build, deploy, and manage applications across AWS services.
-
Scalability & Performance: EazyDeploy utilizes Docker and AWS ECS to ensure horizontal scaling for growing user traffic. Backend APIs run seamlessly on AWS Lambda, offering a serverless, cost-effective solution.
-
Efficient Task Processing: Powered by BullMQ and Redis, EazyDeploy processes background jobs and queues with high performance and reliability. This ensures that tasks like email notifications, data processing, or scheduled jobs are handled efficiently.
-
Custom Subdomains: Offer personalized subdomains using AWS Route 53, allowing users to deploy applications with their own unique URLs. This feature provides flexibility and professionalism for projects.
Before setting up the application, ensure that Redis is up and running. You can run Redis using Docker by following these steps:
-
Pull the Redis Docker image:
docker pull redis
-
Run the Redis container:
docker run --name redis-container -p 6379:6379 -d redis
-
Verify that Redis is running:
docker ps
The Redis server will now be running on port 6379
.
-
Inside
frontend-docker-config
folder, complete credential details inDockerfile
with the given environment variables. -
Build the Docker image inside
frontend-docker-config
:docker build -t frontend-image .
-
Deploy the image to AWS ECR (Elastic Container Registry):
-
Inside
backend-docker-config
folder, complete credential details inDockerfile
with the given environment variables. -
Build the Docker image inside
backend-docker-config
:docker build -t backend-image .
-
Deploy the image to AWS ECR (Elastic Container Registry):
To set up the application using the configurations in EazyDeploy
:
-
Navigate to the
EazyDeploy/backend
folder and create a.env
file with the following environment variables:MONGODB_URL= JWT_SECRET= EMAIL_USER= EMAIL_PASS= AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= HOSTED_ZONE_ID= CERTIFICATE_ARN=
-
Navigate to the
EazyDeploy/backend/Queues
folder and start the worker:node worker.js
-
Start the backend application:
cd EazyDeploy/backend npm install npm start
-
Start the frontend application:
cd EazyDeploy/frontend npm install npm start
The backend Express server will run on port 5000
, and the frontend React application will run on port 3000
.
- Ensure that you replace placeholder values in the
.env
files with your actual credentials and configuration settings. - For deploying Docker images to AWS ECR, you need AWS CLI configured on your local machine or CI/CD environment.
- The
AWS_ACCOUNT_ID
andAWS_REGION
variables should be replaced with your AWS account ID and region, respectively. - Make sure Docker and AWS CLI are installed on your local machine before proceeding with the build and deploy commands.
Feel free to reach out if you have any questions or need further assistance.