makedis is a feature-rich modern deployment framework designed to streamline application deployments, enhance static asset delivery, and enable scalable reverse proxy configurations. Built with robust and industry-standard technologies, Makedis offers a modular, efficient, and developer-friendly architecture that can be tailored to diverse use cases.
Makedis stands out as a complete deployment and proxying solution, offering:
-
Seamless Deployment Workflow
- Automatically handles code cloning, building, and deployment to Amazon S3, minimizing manual overhead.
-
Reverse Proxy for Static Assets
- Efficiently maps subdomains and domains to static assets stored in S3, ensuring fast and reliable content delivery.
-
Scalability at its Core
- Built using Docker and AWS, Makedis can handle dynamic traffic, large-scale projects, and complex application requirements.
-
Modular Design for Flexibility
- Each service is designed as an independent module, making it easy to customize and extend functionality.
-
Developer-Friendly Setup
- Clear setup instructions and minimal configuration requirements allow developers to focus on building rather than infrastructure.
Makedis consists of the following services:
The heart of the application, responsible for handling HTTP requests and orchestrating tasks like triggering builds and deployments.
A service dedicated to:
- Cloning repositories.
- Building Docker images.
- Pushing static builds to Amazon S3 buckets.
A reverse proxy service that:
- Routes requests to appropriate S3 buckets.
- Ensures seamless mapping of subdomains and domains to static assets.
Follow these steps to get Makedis running locally:
In each service folder (api-server
, build-server
, s3-reverse-proxy
), run:
npm install
To build the build-server
Docker image and push it to AWS ECR:
docker build -t makedis-build-server .
docker tag makedis-build-server <aws-account-id>.dkr.ecr.<region>.amazonaws.com/makedis-build-server
docker push <aws-account-id>.dkr.ecr.<region>.amazonaws.com/makedis-build-server
Provide the necessary configuration details such as:
- TASK ARN: The AWS task definition ARN.
- CLUSTER ARN: The AWS ECS cluster ARN.
Run the following commands in their respective directories:
# Start the API Server
cd api-server
node index.js
# Start the S3 Reverse Proxy
cd s3-reverse-proxy
node index.js
Service Name | Description | Port |
---|---|---|
API Server | Handles API requests and task orchestration. | :9000 |
Socket.IO Server | Facilitates real-time communications. | :9002 |
S3 Reverse Proxy | Proxies requests to static assets stored in S3. | :8000 |
Makedis eliminates the need for complex pipelines, enabling rapid builds and deployments with minimal effort.
With S3 as the backbone for static file hosting, Makedis ensures low-latency delivery and high availability for web assets.
The integrated Socket.IO server supports real-time communication, making it ideal for collaborative or dynamic applications.
Makedis leverages Docker, AWS ECS, and Redis, ensuring reliability, scalability, and performance in production environments.
The system is easy to configure and integrate with existing workflows, saving developers significant time and effort.
-
Web Application Hosting
Makedis can deploy and serve single-page applications (SPAs), PWAs, and server-rendered applications with ease. -
Custom CI/CD Pipelines
Use Makedis as a lightweight alternative to traditional CI/CD systems for streamlined workflows. -
Reverse Proxy for Multi-Tenant Systems
Dynamically route subdomains and domains for SaaS applications and other multi-tenant setups.
-
Support for Additional Cloud Providers
Extend support to platforms like Google Cloud Storage and Azure Blob Storage. -
Integrated Logging and Monitoring
Add real-time logging and analytics dashboards for better debugging and performance monitoring. -
Multi-Region S3 Support
Enable replication and distribution of static assets across multiple AWS regions for improved redundancy.
We’re excited to see how the community can improve Makedis! If you have ideas, issues, or enhancements:
- Fork this repository.
- Submit a pull request with your changes.
- Discuss your ideas in the issue tracker.
Together, we can make Makedis a go-to deployment platform for developers worldwide.
Makedis is released under the MIT License, making it open and free to use for both personal and commercial projects.
Build, Deploy, Scale – All with Makedis 🚀