{"id":22822489,"url":"https://github.com/switcherapi/switcher-load-balance","last_synced_at":"2025-03-30T23:41:38.928Z","repository":{"id":38379903,"uuid":"240816380","full_name":"switcherapi/switcher-load-balance","owner":"switcherapi","description":"Switcher Load Balance - Load balancing API","archived":false,"fork":false,"pushed_at":"2023-03-16T19:01:05.000Z","size":34,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T05:14:42.200Z","etag":null,"topics":["load-balancer"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/switcherapi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-16T02:00:09.000Z","updated_at":"2022-09-12T14:15:50.000Z","dependencies_parsed_at":"2022-07-12T02:17:24.399Z","dependency_job_id":null,"html_url":"https://github.com/switcherapi/switcher-load-balance","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/switcherapi%2Fswitcher-load-balance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/switcherapi%2Fswitcher-load-balance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/switcherapi%2Fswitcher-load-balance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/switcherapi%2Fswitcher-load-balance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/switcherapi","download_url":"https://codeload.github.com/switcherapi/switcher-load-balance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246395573,"owners_count":20770240,"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":["load-balancer"],"created_at":"2024-12-12T16:12:07.137Z","updated_at":"2025-03-30T23:41:38.904Z","avatar_url":"https://github.com/switcherapi.png","language":"JavaScript","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=9FKW64V67RKXW\u0026source=url"],"categories":[],"sub_categories":[],"readme":"***\n\n\u003cdiv align=\"center\"\u003e\n\u003cb\u003eSwitcher Load Balancer\u003c/b\u003e\u003cbr\u003e\nSimple load balancer to orquestrate endpoint availability\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Master CI](https://github.com/switcherapi/switcher-load-balance/actions/workflows/master.yml/badge.svg)](https://github.com/switcherapi/switcher-load-balance/actions/workflows/master.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=switcherapi_switcher-load-balance\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=switcherapi_switcher-load-balance)\n[![Known Vulnerabilities](https://snyk.io/test/github/switcherapi/switcher-load-balance/badge.svg)](https://snyk.io/test/github/switcherapi/switcher-load-balance)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Slack: Switcher-HQ](https://img.shields.io/badge/slack-@switcher/hq-blue.svg?logo=slack)](https://switcher-hq.slack.com/)\n\n\u003c/div\u003e\n\n***\n\n![Switcher Load Balance: Load Balancing API](https://github.com/petruki/switcherapi-assets/blob/master/logo/switcherapi_loadbalance.png)\n\n# Requirements  \n- NodeJS\n- Postman (optional for request examples)\n- Coffee =D\n\n# About  \n**Switcher Load Balance** is a simple load balance developed especially for supporting CI environments.\n\nMain features:\n- Auto switch off when a node is offline.\n- Auto recover, forced or scheduled.\n- Stateful configuration, no DB in between, the only latency is the network.\n- Check node health via REST requests.\n- API Key generated automatically after deployment.\n\n# Configuration\n1) npm install\n2) Add .env-cmdrc file into the project directory.\n\nExample:\n```\n{\n  \"dev\": {\n    \"PORT\": \"3002\",\n    \"SNODE1\": \"http://localhost:3000\",\n    \"SNODE2\": \"https://switcherapi.com/api\",\n    \"CHECK_ENDPOINT\": \"/check\",\n    \"LOGGER\": \"true\",\n    \"RECOVER_ATTEMPT_DURATION\": \"60\",\n    \"RECOVER_INTERVAL\": \"10\"\n  },\n  \"prod\": {\n    \"PORT\": \"3002\",\n    \"SNODE1\": \"http://localhost:3000\",\n    \"SNODE2\": \"https://switcherapi.com/api\",\n    \"CHECK_ENDPOINT\": \"/check\",\n    \"LOGGER\": \"true\",\n    \"RECOVER_ATTEMPT_DURATION\": \"60\",\n    \"RECOVER_INTERVAL\": \"10\"\n  },\n  \"test\": {\n    \"PORT\": \"3002\"\n  }\n}\n```\n\n## Donation\nDonations for cookies and pizza are extremely welcomed.\n\n[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=9FKW64V67RKXW\u0026source=url)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswitcherapi%2Fswitcher-load-balance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswitcherapi%2Fswitcher-load-balance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswitcherapi%2Fswitcher-load-balance/lists"}