{"id":24551456,"url":"https://github.com/bitfocus/companion-satellite","last_synced_at":"2026-03-03T21:06:56.656Z","repository":{"id":43278458,"uuid":"331102328","full_name":"bitfocus/companion-satellite","owner":"bitfocus","description":"Satellite Streamdeck connector for Companion","archived":false,"fork":false,"pushed_at":"2026-02-28T14:22:50.000Z","size":6057,"stargazers_count":107,"open_issues_count":25,"forks_count":26,"subscribers_count":16,"default_branch":"main","last_synced_at":"2026-02-28T14:37:33.081Z","etag":null,"topics":["companion","elgato","elgato-stream-deck","hacktoberfest","streamdeck"],"latest_commit_sha":null,"homepage":"https://companion.free/satellite/","language":"TypeScript","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/bitfocus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-01-19T20:33:34.000Z","updated_at":"2026-02-28T14:22:46.000Z","dependencies_parsed_at":"2023-01-29T22:30:26.936Z","dependency_job_id":"154b7443-223f-4604-80a9-1612e2584ccb","html_url":"https://github.com/bitfocus/companion-satellite","commit_stats":null,"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"purl":"pkg:github/bitfocus/companion-satellite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitfocus%2Fcompanion-satellite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitfocus%2Fcompanion-satellite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitfocus%2Fcompanion-satellite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitfocus%2Fcompanion-satellite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitfocus","download_url":"https://codeload.github.com/bitfocus/companion-satellite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitfocus%2Fcompanion-satellite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30060915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["companion","elgato","elgato-stream-deck","hacktoberfest","streamdeck"],"created_at":"2025-01-23T01:17:07.621Z","updated_at":"2026-03-03T21:06:56.650Z","avatar_url":"https://github.com/bitfocus.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Companion Satellite\n\n[![License](https://img.shields.io/github/license/bitfocus/companion-satellite)](https://github.com/bitfocus/companion-satellite/blob/main/LICENSE)\n[![Version](https://img.shields.io/github/v/release/bitfocus/companion-satellite)](https://github.com/bitfocus/companion-satellite/releases)\n📋 [View Changelog](CHANGELOG.md)\n\nA small application to allow for connecting Elgato Stream Deck and other supprted surface types to [Bitfocus Companion](https://github.com/bitfocus/companion) over a network.\n\nCompanion 3.4.0 and newer are supported\n\nEach surface will appear in companion as its own 'satellite' surface, and can be configured as if they are local.\n\nNote: This connects over the satellite surface api which uses port TCP 16622.\n\n[![Satellite Getting Started](http://img.youtube.com/vi/eNnUxRl4yP4/0.jpg)](http://www.youtube.com/watch?v=eNnUxRl4yP4 'Remote Stream Deck control with Companion Satellite')\n\n## Getting started\n\nYou can find installers on the [Bitfocus website](https://user.bitfocus.io/download)\n\n### Raspberry Pi\n\nA prebuilt image is available on the [Bitfocus website](https://user.bitfocus.io/download).\n\nAfter writing the image to an sd card, edit the satellite-config file in the boot partition to point to your companion instance. Configuration can also be done through the web interface, running on port 9999.  \nIf mdns works on your network, Companion will discover your Satellite, and will offer to configure it for you.\n\n### Desktop\n\nThis application can be built with electron to provide a minimal ui and to allow for minimising to the system tray.\nYou can right click the tray icon to:\n\n- Set the ip address of the companion instance to connect to\n- Force a manual scan for surfaces. This is done automatically when a new surface is detected, but it can sometimes miss some\n\nTo manually build the latest version for your machine:\n\n- `yarn install`\n- `yarn dist`\n- Locate the output under `electron-output/`\n\n### Manual Headless / Raspberry pi\n\nWe only support x64 and arm64 Linux distributions. We recommend something debian based, but it should be possible to use on other distros with some additional work.\n\nIf using a Raspberry Pi, we require the 64bit 'Raspberry Pi OS Lite' images.  \nIf using a different brand SBC, we recommend running [Armbian](https://www.armbian.com/) specifically the minimal debian images, as this provides a minimal and consistent debian environment and are typically more up to date then the manufacturer images.\n\nIt can be built and run as a systemd service on a pi or other linux machine\n\nNo images are provided for this, but the process has been written to be a single script.\n\nSwitch to the root user, if required:\n\n```\nsudo -i\n```\n\nAs root, run the following:\n\n```\ncurl https://raw.githubusercontent.com/bitfocus/companion-satellite/main/pi-image/install.sh | bash\n```\n\nNote: This script will create a new user called `satellite`, which Satellite will be run as and will own the configuration.\n\nAfter this, you can use `sudo satellite-update` to change the version it has installed.  \nOptionally, you can supply an argument to this updater to specify the new version to install. This should be either `beta` or `stable`.\n\n## Configuration\n\nOnce installation is complete, configure your Companion Satellite installation using the web UI at `http://Satellite-IP:9999`\n\nFor details of configuration options, see `https://companion.free/satellite/`\n\n## Development\n\nNodeJS 24 is required\n\n### Headless\n\n1. Install the dependencies `yarn install`\n1. Run it `yarn dev` substituting in your companion instance ip address\n1. In another terminal run `yarn dev:webui` to serve the web interface\n1. Access the web interface at http://127.0.0.1:5173\n\n### Electron\n\n1. Install the dependencies `yarn install`\n1. In one terminal run `yarn dev:webui` to serve the web interface\n1. Run it `yarn dev:electron`\n\nYou can package for electron with `yarn dist`.  \nBuilding for another platform has not been tested.\n\n### REST API\n\nThe default rest port is 9999\n\n- a GET request to `http://Satellite-IP:9999/api/host` will return the current target ip in plain text\n- a GET request to `http://Satellite-IP:9999/api/port` will return the current target port in plain text\n- a GET request to `http://Satellite-IP:9999/api/config` will return the current target port and ip as json\n\n- a POST request to `http://Satellite-IP:9999/api/host` with json body `{\"host\": \"newhostip\"}` or plain text `newhostip` will connect the satellite to that ip or hostname\n- a POST request to `http://Satellite-IP:9999/api/port` with `{\"port\": 16622}` or plain text `16622` will connect the satellite to that port\n- a POST request to `http://Satellite-IP:9999/api/config` with `{\"host\": \"newhostip\", \"port\": 16622}` will connect the satellite to that ip/hostname and port\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitfocus%2Fcompanion-satellite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitfocus%2Fcompanion-satellite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitfocus%2Fcompanion-satellite/lists"}