{"id":19969436,"url":"https://github.com/vmarchaud/screenstation","last_synced_at":"2026-02-27T08:05:29.651Z","repository":{"id":84016971,"uuid":"231942770","full_name":"vmarchaud/screenstation","owner":"vmarchaud","description":"Manage fleet of screens in your office","archived":false,"fork":false,"pushed_at":"2021-11-21T16:38:08.000Z","size":3521,"stargazers_count":8,"open_issues_count":5,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-01T09:25:23.687Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/vmarchaud/screenstation","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vmarchaud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-01-05T16:10:56.000Z","updated_at":"2024-07-09T09:50:48.000Z","dependencies_parsed_at":"2023-04-27T21:31:35.502Z","dependency_job_id":null,"html_url":"https://github.com/vmarchaud/screenstation","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/vmarchaud/screenstation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmarchaud%2Fscreenstation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmarchaud%2Fscreenstation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmarchaud%2Fscreenstation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmarchaud%2Fscreenstation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vmarchaud","download_url":"https://codeload.github.com/vmarchaud/screenstation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmarchaud%2Fscreenstation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29888149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T07:54:54.515Z","status":"ssl_error","status_checked_at":"2026-02-27T07:54:49.177Z","response_time":57,"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":[],"created_at":"2024-11-13T02:50:05.058Z","updated_at":"2026-02-27T08:05:29.637Z","avatar_url":"https://github.com/vmarchaud.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Screenstation\n\n**NOTE: I've stopped using this product a while ago (mostly we removed big screens at my office after covid so i don't have an use right now) but it should works fine.**\n\nScreenstation is a group of services used to remotely manages a fleet of screens across multiple rooms or offices.\n\nWhen working at Keymetrics, some developers were working on a internal product that was allowing to manage screens that we had around our offices to display specific pages (mostly monitoring or BI).\nWhen i left and joined Reelevant we had the same issue, sadly they didn't released the internal tool to the world so i motived myself to code a simpler version. One of my goal was to be able to use chromecast to avoid using as many PI's as screens i had.\n\nHere the different services:\n- `api` is the gateway that the `frontend` use to communicate to `workers` (over websockets)\n  - its automatically exposed on `api-screenstation.local` (using mdns).\n  - its register `workers.screenstation.local` which is used by worker to connect to it (using mdns too).\n- `frontend` is the UI that allows to manage all `workers`\n  - its automatically exposed on `screenstation.local` (again using mdns)\n- `worker` is the actual worker that you'll need to deploy on each hardware.\n  - one worker can use the screen connected to it and can *cast* to any chromecast available in its network.\n\nA summary of features that you can use:\n- Cast to the worker's attached screen\n- Cast to any chromecast inside the network\n- Automatically refresh any page every configurable interval\n- Remotely connect to any screen to click/type on it (if you can to log yourself for ex.)\n- If you shutdown a worker, it will stop sharing to any chromecast but will start again on startup.\n- If someone take the control of a chromecast, the worker will wait for it to be available again to avoid a war :)\n\n# How to use\n\nCurrently targeting both `armv7` (except of the frontend, but shouldn't be hard to build from source) and `x86`, you can find the last build i've made on the latest release (v0.3.3). \n\nWhen you have all binaries on your host, you simply need to launch them one by one (order: api -\u003e worker -\u003e frontend). There are systemd service template in `/deploy` if you want.\n\nAll the services are discovering themselves over mdns so there is no config to do prior to launching all services.\nAfter few seconds, you should be able to reach `screenstation.local` from your browser.\n\n# Screenshots\n\n### Homescreen\n![Screenshot from 2021-11-21 17-31-05](https://user-images.githubusercontent.com/2820968/142770716-f51554f7-758a-43d5-a699-bfb909e5a8b4.png)\n### Set a refresh time for a view\n![Screenshot from 2021-11-21 17-31-27](https://user-images.githubusercontent.com/2820968/142770719-a55e9124-db47-4545-aacd-9bb32b38e053.png)\n### Remotely control a view\n![Screenshot from 2021-11-21 17-31-46](https://user-images.githubusercontent.com/2820968/142770741-5e25bad5-89b7-4973-bdfc-d3e5c1ff5f72.png)\n### Set an url\n![Screenshot from 2021-11-21 17-32-09](https://user-images.githubusercontent.com/2820968/142770742-f6db8fe0-3604-4732-9cf5-097c5ee403c0.png)\n### Cast to a chromecast\n![Screenshot from 2021-11-21 17-35-02](https://user-images.githubusercontent.com/2820968/142770744-9ae9ff42-db3d-4584-af26-56a618448d3e.png)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmarchaud%2Fscreenstation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvmarchaud%2Fscreenstation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmarchaud%2Fscreenstation/lists"}