{"id":13582457,"url":"https://github.com/gianarb/orbiter","last_synced_at":"2025-04-05T16:08:54.004Z","repository":{"id":71811797,"uuid":"82615804","full_name":"gianarb/orbiter","owner":"gianarb","description":"Orbiter is an opensource docker swarm autoscaler","archived":false,"fork":false,"pushed_at":"2018-06-02T06:37:48.000Z","size":17377,"stargazers_count":513,"open_issues_count":14,"forks_count":54,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-29T15:08:21.372Z","etag":null,"topics":["auto-scaling","cloud","docker-swarm"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gianarb.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}},"created_at":"2017-02-21T00:07:27.000Z","updated_at":"2025-03-12T09:46:36.000Z","dependencies_parsed_at":"2023-07-16T22:01:06.438Z","dependency_job_id":null,"html_url":"https://github.com/gianarb/orbiter","commit_stats":{"total_commits":62,"total_committers":9,"mean_commits":6.888888888888889,"dds":0.3709677419354839,"last_synced_commit":"e8753183828181303209d4152319717be22927a9"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gianarb%2Forbiter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gianarb%2Forbiter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gianarb%2Forbiter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gianarb%2Forbiter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gianarb","download_url":"https://codeload.github.com/gianarb/orbiter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247361691,"owners_count":20926643,"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":["auto-scaling","cloud","docker-swarm"],"created_at":"2024-08-01T15:02:43.984Z","updated_at":"2025-04-05T16:08:53.982Z","avatar_url":"https://github.com/gianarb.png","language":"Go","readme":"![](https://raw.githubusercontent.com/gianarb/orbiter/master/design/logo.png \"Orbiter\")\n\n\n[![Build\nStatus](https://travis-ci.org/gianarb/orbiter.svg?branch=master)](https://travis-ci.org/gianarb/orbiter)\n\nOrbiter is an easy to run autoscaler for Docker Swarm. It is designed to work\nout of the box.\n\nWe designed it in collaboration with InfluxData to show how metrics can be used to\ncreate automation around Docker tasks.\n\n\n```sh\norbiter daemon\n```\nOrbiter is a daemon that exposes an HTTP API to trigger scaling up or down.\n\n## Http API\nOrbiter exposes an HTTP JSON api that you can use to trigger scaling UP (true)\nor DOWN (false).\n\nThe concept is very simple, when your monitoring system knows that it's time to\nscale it can call the outscaler to persist the right action\n\n```sh\ncurl -v -d '{\"direction\": true}' \\\n    http://localhost:8000/v1/orbiter/handle/infra_scale/docker\n```\nOr if you prefer\n\n```sh\ncurl -v -X POST http://localhost:8000/v1/orbiter/handle/infra_scale/docker/up\n```\n\nYou can look at the list of services managed by orbiter:\n\n```sh\ncurl -v -X GET http://localhost:8000/v1/orbiter/autoscaler\n```\n\nLook at the health to know if everything is working:\n\n```sh\ncurl -v -X GET http://localhost:8000/v1/orbiter/health\n```\n\n## Autodetect\n\n```\norbiter daemon\n```\n\nIt's going to start in autodetect mode. This modality at the moment only fetches\nfor Docker SwarmMode. It uses the environment variables DOCKER_HOST (and others) to\nlocate a Docker daemon. If it's in SwarmMode, orbiter is going to look at all the\nservices currently running.\n\nIf a service is labeled with `orbiter=true` it's going to auto-register the\nservice and it's going to enable autoscaling.\n\nIf a service is labeled with `orbiter=true` orbiter will auto-register the\nservice providing autoscaling capabilities.\n\nLet's say that you started a service:\n\n```\ndocker service create --label orbiter=true --name web -p 80:80 nginx\n```\n\nWhen you start orbiter, it's going to auto-register an autoscaler called\n`autoswarm/web`. By default up and down are set to 1 but you can override\nthem with the label `orbiter.up=3` and `orbiter.down=2`.\n\nThis scalability allows you to instantiate orbiter in an extremely easy way in\nDocker Swarm.\n\nA background job reads the Docker Swarm Event api to keep the services\nregistered in sync.\n\n## With docker\n\n```sh\ndocker run -it -v ${PWD}/your.yml:/etc/orbiter.yml -p 8000:8000 gianarb/orbiter daemon\n```\nWe are supporting an image `gianarb/orbiter` in hub.docker.com. You can run it\nwith your configuration.\n\nIn this example I am using volumes but if you have a Docker Swarm 1.13 up and\nrunning you can use secrets.\n\n","funding_links":[],"categories":["Go","\u003ca name=\"Go\"\u003e\u003c/a\u003eGo"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgianarb%2Forbiter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgianarb%2Forbiter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgianarb%2Forbiter/lists"}