{"id":25738712,"url":"https://github.com/iterait/shepherd","last_synced_at":"2026-03-06T22:02:23.675Z","repository":{"id":33113019,"uuid":"148603238","full_name":"iterait/shepherd","owner":"iterait","description":"Provides access to computation resources on a single machine through a REST API","archived":false,"fork":false,"pushed_at":"2022-01-06T09:11:27.000Z","size":2336,"stargazers_count":7,"open_issues_count":29,"forks_count":2,"subscribers_count":8,"default_branch":"dev","last_synced_at":"2025-05-08T05:42:38.903Z","etag":null,"topics":["gpu","queue","worker"],"latest_commit_sha":null,"homepage":"https://iterait.github.io/shepherd/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iterait.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}},"created_at":"2018-09-13T07:59:58.000Z","updated_at":"2022-12-14T14:50:48.000Z","dependencies_parsed_at":"2022-08-07T20:00:37.407Z","dependency_job_id":null,"html_url":"https://github.com/iterait/shepherd","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/iterait/shepherd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iterait%2Fshepherd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iterait%2Fshepherd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iterait%2Fshepherd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iterait%2Fshepherd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iterait","download_url":"https://codeload.github.com/iterait/shepherd/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iterait%2Fshepherd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30200756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["gpu","queue","worker"],"created_at":"2025-02-26T07:32:45.395Z","updated_at":"2026-03-06T22:02:23.650Z","avatar_url":"https://github.com/iterait.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shepherd\n\n[![CircleCI](https://circleci.com/gh/iterait/shepherd.png?style=shield\u0026circle-token=1045f8994f4f35d81130331600a0683e16bbb4f9)](https://circleci.com/gh/iterait/shepherd/tree/master)\n\nProvides access to computation resources on a single machine.\n\n## Development Guide\n\n### Prerequisites\n\n1. Install dependencies with `pip install .`\n2. Make sure you have Docker installed and that your user has permissions to use \n   it\n3. If you intend to run computations on a GPU, install also `nvidia-docker2`\n\n### Launching the Shepherd\n\nFirst, you need to have a Docker registry and a Minio server running. The \neasiest way to achieve this is to use the Docker Compose example:\n\n```\ndocker-compose -f examples/docker/docker-compose-sandbox.yml up -d\n```\n\nSecond, you need a configuration file. Again, examples found in the `examples/configs/` \nfolder are a great starting point. Feel free to pick one of those and edit it to \nyour needs.\n\nFinally, you need to run the following command to start the shepherd:\n\n```\nshepherd -c examples/configs/shepherd-docker-cpu.yml\n```\n\nBe sure to adjust the command line parameters according to your needs (`-h` is \nyour host address, `-p` is the port number where the shepherd API server listens \nand `-c` is the path to the configuration file).\n\nAfter launching the shepherd, there will be an HTTP API available on the \nconfigured port that can be used to control the shepherd.\n\n### Processing a Request Directly\n\nTo process a request for debugging purposes, you need to:\n\n- choose a request id\n- create a bucket on your Minio server with a name same as your request id\n- put the payload (input for the model) in `\u003cyourbucket\u003e/inputs/input.json`\n- invoke the `/start-job` API endpoint with your chosen request id\n- after the job is processed, the result should be stored in Minio, in \n  `\u003cyourbucket\u003e/outputs.json`\n\n### Running Tests\n\nFirst, install the test requirements `pip install '.[tests]'`.\nThe test suite can be run with `python setup.py test`.\n\n### Running Stress Tests\n\nFirst, install the test requirements `pip install '.[tests]'`.\n\nTo launch stress test, run:\n```\ndocker-compose -f examples/docker/docker-compose-sandbox.yml up -d\nshepherd -c tests/stress/shepherd-bare.yml\nmolotov tests/stress/loadtest.py -p 2 -w 10 -d 60 -xv\n```\nYou can modify stress test arguments: `-p` (number of processes), `-w` (number of workers) and \n`-d` (number of seconds to run the test).\n\nYou can also run stress test with time measurements:\n```\nmolotov --use-extension tests/stress/measure_time.py --max-runs 10 tests/stress/loadtest.py\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiterait%2Fshepherd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiterait%2Fshepherd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiterait%2Fshepherd/lists"}