{"id":19592605,"url":"https://github.com/smallstack/smallstack-remote-runner","last_synced_at":"2026-06-11T06:31:21.297Z","repository":{"id":165507182,"uuid":"76113802","full_name":"smallstack/smallstack-remote-runner","owner":"smallstack","description":"NodeJS command runner","archived":false,"fork":false,"pushed_at":"2016-12-11T12:10:55.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T14:15:26.652Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/smallstack.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":"2016-12-10T13:20:31.000Z","updated_at":"2016-12-10T18:14:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"e83b4775-d707-4ac6-9472-db21a9f3f10f","html_url":"https://github.com/smallstack/smallstack-remote-runner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/smallstack/smallstack-remote-runner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallstack%2Fsmallstack-remote-runner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallstack%2Fsmallstack-remote-runner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallstack%2Fsmallstack-remote-runner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallstack%2Fsmallstack-remote-runner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smallstack","download_url":"https://codeload.github.com/smallstack/smallstack-remote-runner/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallstack%2Fsmallstack-remote-runner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34186385,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-11T08:36:18.545Z","updated_at":"2026-06-11T06:31:21.276Z","avatar_url":"https://github.com/smallstack.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# smallstack-remote-runner\nExecutes any kind of commands on a remote computing instance via REST.\n\n## Why?\nFor many operations in our company we needed a solution that outsources heavy load tasks to an external computing instance, e.g. testing, bundling, deploying and provisioning of our own software and projects. Until now this was done by Continuous Integration Software like Jenkins. Unfortunately, synchronizing the configuration of many projects is an overhead that cannot be underestimated. With TravisCI we found a system that could be managed via a configuration file inside the repository, but still you need to configure and maintain plans, sync logs back into your system etc.pp.\n\nSo we are looking for a simple piece of software that:\n- executes commands\n- saves the logs\n- does both over a REST API\n\nRundeck seemed to be a good catch, but the administration isn't trivial. Combining some ideas of Travis CI, Jenkins and Rundeck, removing all unnecessary overhead like the WebUI, authentication/authorization and voila, the result is a tiny node script that does excatly what we need.\n\n## How-to install\nEither run it via \"npm run start\" or deploy it as Docker Image. Be aware that there is no authentication, so if you plug a remote-runner into your existing environment, be sure its not accessible for others.\n\n## How-to use?\n### Start a job\nDo a POST to /jobs with the following content as json:\n```\n{\n  \"commands\": [\n    {\n      \"command\": \"git clone https://github.com/smallstack/project-cuppy.git .\",\n      \"workingDirectory\": \".\"\n    },\n    {\n      \"command\": \"npm install\"\n    },\n    {\n      \"command\": \"smallstack clean generate compile\"\n    },\n    {\n      \"command\": \"smallstack deploy -apiKey=$API_KEY\"\n    }\n  ]\n}\n```\nand you'll get back a response with the created job ID: \n```\n{\n  \"id\": \"e3jFJijeFHoeiuhIOUHFweio\"\n  \"status\": \"queued\",\n  \"configuration\": { ... }\n}\n```\n\n### Get a job result\nDo a GET on /jobs/e3jFJijeFHoeiuhIOUHFweio and you will get back a response like\n```\n{\n  \"id\": \"e3jFJijeFHoeiuhIOUHFweio\"\n  \"status\": \"running\",\n  \"configuration\": { ... },\n  \"logs\": [\n    {\n      \"level\": \"info\",\n      \"timestamp\": \"...\",\n      \"message\": \"Executing command (...)\"\n    }\n  ]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmallstack%2Fsmallstack-remote-runner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmallstack%2Fsmallstack-remote-runner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmallstack%2Fsmallstack-remote-runner/lists"}