{"id":27093485,"url":"https://github.com/hect1k/stabl","last_synced_at":"2025-04-06T08:24:00.594Z","repository":{"id":252822141,"uuid":"841584765","full_name":"hect1k/stabl","owner":"hect1k","description":"stabl - Stabilise Traffic and Balance Load. A simple load balancer built in Go that currently uses a round-robin algorithm to route traffic. stabl is designed to efficiently distribute incoming requests across multiple servers, helping to ensure a balanced load and improved stability for your applications.","archived":false,"fork":false,"pushed_at":"2024-09-24T09:56:00.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-21T22:32:07.042Z","etag":null,"topics":["devops","go","golang","hacktoberfest","load-balancer","open-source"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hect1k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-12T17:42:37.000Z","updated_at":"2024-10-16T15:52:37.000Z","dependencies_parsed_at":"2024-08-12T19:46:45.963Z","dependency_job_id":"e1634847-7118-4ef6-b3ca-8e8b9f8fdd1b","html_url":"https://github.com/hect1k/stabl","commit_stats":null,"previous_names":["nnisarggada/stabl","hect1k/stabl"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hect1k%2Fstabl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hect1k%2Fstabl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hect1k%2Fstabl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hect1k%2Fstabl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hect1k","download_url":"https://codeload.github.com/hect1k/stabl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247452998,"owners_count":20941204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devops","go","golang","hacktoberfest","load-balancer","open-source"],"created_at":"2025-04-06T08:23:59.703Z","updated_at":"2025-04-06T08:24:00.583Z","avatar_url":"https://github.com/hect1k.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# stabl - Stabilize Traffic and Balance Load\n\n**stabl** is a lightweight load balancer built in Go, using a round-robin algorithm to efficiently distribute incoming traffic across multiple servers. This tool helps to ensure better performance and reliability by stabilizing traffic and balancing load across your application servers.\n\n![stabl banner](https://nnisarg.in/images/projects/stabl.jpg)\n\n# Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n- [Contact](#contact)\n\n## Features\n\n- **Round-Robin Load Balancing**: Evenly distributes incoming requests to servers using a round-robin method.\n- **Cross-Platform Compatibility**: Works on Linux, macOS, and Windows.\n- **Easy Setup**: Minimal configuration required to get started.\n- **Customizable Settings**: Modify load balancing behavior through a simple configuration file.\n- **Logging**: Logs load balancer activity to a file for easy monitoring and debugging.\n\n## Installation\n\n### Step 1: Download the latest release\n\nGo to the [Releases page](https://github.com/hect1k/stabl/releases/latest) and download the appropriate version of `stabl` for your operating system.\n\n### Step 2: Extract and move the executable\n\nIf required, extract the downloaded file and place the `stabl` executable in your preferred directory.\n\n### Step 3: Prepare the configuration file\n\nCreate or move the `config.json` file to the same directory as the executable. The configuration file should define the port for the load balancer and the list of servers you want to balance.\n\n## Configuration\n\nAn example `config.json` file:\n\n```json\n{\n  \"port\": 8080,\n  \"checkAfter\": 5,\n  \"servers\": [\n    \"http://server1.example.com\",\n    \"http://server2.example.com\",\n    \"http://server3.example.com\"\n  ],\n  \"logFile\": \"stabl.log\"\n}\n```\n\n- **`port`**: The port on which `stabl` will listen for incoming traffic.\n- **`checkAfter`**: Interval in seconds after which the health of the servers is checked.\n- **`servers`**: List of backend servers to distribute traffic.\n- **`logFile`**: File path for storing log information about load balancer activity.\n\n## Usage\n\nAfter downloading and configuring `stabl`, you can run it by providing the path to the configuration file, the port, and the log file path using command-line flags. The default config path is `./config.json`, and the default port is `8080`.\n\n**Note:** Command-line flags will override the settings in the `config.json` file.\n\n### Linux\n\n```bash\n./stabl --config=path/to/config.json --port=8080 --logFile=path/to/log/file\n```\n\n### macOS\n\n```bash\n./stabl_darwin --config=path/to/config.json --port=8080 --logFile=path/to/log/file\n```\n\n### Windows\n\n```bash\nstabl.exe --config=path/to/config.json --port=8080 --logFile=path/to/log/file\n```\n\n## Contributing\n\nWe welcome contributions to improve `stabl`. Here's how you can contribute:\n\n1. Fork the repository on GitHub.\n2. Create a new branch for your changes.\n3. Make your modifications and commit them.\n4. Push your branch to GitHub.\n5. Open a pull request with a description of the changes you've made.\n\n## License\n\nThis project is licensed under the [GNU General Public License v3.0](LICENSE).\n\n## Contact\n\nFor questions, suggestions, or reporting issues, please open an issue on our [GitHub repository](https://github.com/hect1k/stabl).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhect1k%2Fstabl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhect1k%2Fstabl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhect1k%2Fstabl/lists"}