Scaleguard is a high-performance load balancer and reverse proxy designed to efficiently distribute traffic across multiple servers and ensure seamless service availability. It optimizes network performance by intelligently routing requests, balancing workloads, and providing secure exposure of services. Scaleguard enhances scalability, improves fault tolerance, and supports dynamic traffic management for distributed environments.
Scaleguard's architecture ensures high availability, security, and ease of management. Below is an overview of its core components:
Below is a screenshot of the Scaleguard landing screen:
- Load Balancer: Distributes incoming traffic across multiple backend servers to ensure optimal resource utilization and reliability.
- Reverse Proxy: Acts as an intermediary to handle client requests, improving security and performance.
- SafeExpose: Securely expose internal services to external clients with controlled access.
- Multi-Cluster Load Balancer: Efficiently manage traffic across multiple clusters, ensuring high availability and failover support.
- Async API Support: Efficiently handle asynchronous communication patterns for real-time applications or services.
- Queuing Mechanism: Supports queuing for efficient workload distribution and message processing.
- Built-in Observability: Provides real-time monitoring, logging, and tracing for improved system visibility and debugging.
- API Support: Facilitates seamless integration with external services through a robust API framework.
- Dynamic Configuration API: Enables real-time updates to configurations without requiring restarts or downtime.
- Dynamic DNS: Automatically updates DNS records based on changes in infrastructure, improving service discovery.
- Automatic Certificate Provisioning: Automated provisioning and management of SSL/TLS certificates for secure communication.
- Request Caching: Stores frequently requested content at the load balancer level to improve response times and reduce load on backend servers.
- High Scalability: Efficiently handles a large number of concurrent connections and scales horizontally as demand increases.
Ensure the following dependencies are installed before running Scaleguard:
- Java (JDK 11 or later)
- Node.js (for Admin UI)
- Maven (for building the backend)
- Git
git clone https://github.com/dhaneeshtb/scaleguard.git
cd scaleguard
mvn clean install
java -DadminUser=scaleguard -DadminPassword=Scaleguard123$ -jar target/scaleguard-1.0-SNAPSHOT.jar
Follow these steps to deploy Scaleguard in a production environment.
Ensure Java and Maven are installed, then run:
mvn clean install
This will generate the JAR file at: target/scaleguard-1.0-SNAPSHOT.jar
Configure your DNS provider to map a CNAME (or A record) to your serverโs IP address:
CNAME: router.example.com โ <YOUR_SERVER_PUBLIC_IP>
This will generate the JAR file at: target/scaleguard-1.0-SNAPSHOT.jar
Start the Scaleguard server with admin credentials and the configured hostname:
nohup java -DadminUser=scaleguard \
-DadminPassword=Scaleguard123$ -jar scaleguard.jar \
--hostname=router.example.com > scaleguard.log & echo $! > scaleguard.pid
๐ Step 4: Connect via Scaleguard Admin UI https://scaleguard.vercel.app/sign-in
To manage your Scaleguard instance through the centralized Admin UI:
Visit the web console:https://scaleguard.vercel.app/sign-in
Username: your username (scaleguard)
Password: your password (Scaleguard123$)
Enter your Host URL as: whatever host you configured for example:https://router.example.com
โ
Once logged in, you'll have access to the full administration dashboard connected to your deployed server.
cd admin-ui
npm install
npm start
Scaleguard provides a SafeExpose
mechanism that allows users to expose their locally running applications to the public in a secure manner. This is achieved through the safeexpose
script, available at Scaleguard SafeExpose.
For installation and usage details, please refer to the official Scaleguard SafeExpose repository.
If you need to disable the system's default DNS service:
sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -m "Add new feature"
). - Push to the branch (
git push origin feature-branch
). - Create a pull request.
We appreciate your contributions to make Scaleguard even better!
Scaleguard is released under the MIT License.
For any inquiries, please contact: dhaneeshtnair@gmail.com Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -m "Add new feature"
). - Push to the branch (
git push origin feature-branch
). - Create a pull request.
We appreciate your contributions to make Scaleguard even better!