BDS is a deployment orchestrator. It exposes an API that takes a Git URL, builds the code into a container on AWS ECS, and provides a unique URL to access the app. It also handles real-time log streaming.
- Deploy Service: The core API. It receives the Git URL, triggers ECS tasks, saves deployment data to Supabase, gives access url, and streams logs via WebSockets.
- Reverse-Proxy-Service: It maps incoming traffic from custom subdomains to the correct container IP and port.
- Build-Server-Node: Contains a Dockerfile and shell scripts used to clone the Git repository, build the Node.js application, and run it inside an ECS task.
- Build-Server-Spring Boot: Contains a Dockerfile and shell scripts used to clone the Git repository, build the Spring Boot application, and run it inside an ECS task.
- Java / Spring Boot
- AWS (ECS, ECR, Fargate, CloudWatch)
- Supabase (PostgreSQL)
- Docker
Build Docker images using the Dockerfile and shell scripts in these folders and push them to your Amazon ECR:
build-server-node– builds and runs Node.js applicationsbuild-server-springboot– builds and runs Spring Boot applications
In the AWS Console, create Fargate Task Definitions for both runners:
- Node Task: Use the
node-runnerimage. - Spring Boot Task: Use the
springboot-runnerimage.
Enable CloudWatch logging so the Deploy Service can tail the logs.
- Update
application.ymlfiles indeploy-serviceandreverse-proxy-servicewith your AWS credentials, Supabase URL, and ECS Cluster name. - Run the applications
cd deploy-service
./mvnw spring-boot:run
cd reverse-proxy-service
./mvnw spring-boot:runKarthikeya Chanda