{"id":20839194,"url":"https://github.com/timoa/screenkit","last_synced_at":"2026-03-19T17:46:42.122Z","repository":{"id":151341823,"uuid":"205091132","full_name":"timoa/screenkit","owner":"timoa","description":"The cheapest solution to show content on TV screens (monitoring, digital signage, etc.)","archived":false,"fork":false,"pushed_at":"2019-09-03T13:56:33.000Z","size":12,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-27T07:23:23.290Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/timoa.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-08-29T05:57:30.000Z","updated_at":"2024-08-19T15:59:19.000Z","dependencies_parsed_at":"2023-06-26T02:11:18.145Z","dependency_job_id":null,"html_url":"https://github.com/timoa/screenkit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/timoa/screenkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fscreenkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fscreenkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fscreenkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fscreenkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timoa","download_url":"https://codeload.github.com/timoa/screenkit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fscreenkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30519067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-14T19:51:21.629Z","status":"ssl_error","status_checked_at":"2026-03-14T19:51:12.959Z","response_time":57,"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":[],"created_at":"2024-11-18T01:12:41.691Z","updated_at":"2026-03-14T21:53:57.208Z","avatar_url":"https://github.com/timoa.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# ScreenKit\n\nThe cheapest solution to show content on TV screens (monitoring, dashboard, digital signage, etc.) with a modern browser, automatic rotation of the content and configuration per screen!\n\nThis project is based on:\n\n* [Chilipie Kiosk][chilipie-kiosk-project]: Linux distro optimised for RPi and to run in kiosk mode\n* [Chromium][chromium-project]: Latest version of Chromium (Chrome open source version) that provides a modern browser that support SVG, modern JS, etc.\n* [Tab Rotate][tab-rotate-project]: Chrome extension that run in fullscreen and rotate between multiple tabs\n* [Tab Rotate Server][tab-rotate-server-project]: Webserver that manages the content per screen for the Tab Rotate Chrome extension\n* Dedicated Google account: This Google account will syncronised the settings and extensions between the screens\n\n## How does it work\n\n1) [Chilipie Kiosk][chilipie-kiosk-project] will boot the RPi and launches the [Chromium browser][chromium-project] in full screen without the mouse cursor and with a nice background image\n2) The [Tab Rotate extension][tab-rotate-project] will call the [Tab Rotate Server][tab-rotate-server-project] to get a playlist of contents\n3) The [Tab Rotate Server][tab-rotate-server-project] detect the IP of the screen that requested the playlist and if a playlist exists for this screen, it send it or uses the default one\n4) The [Tab Rotate extension][tab-rotate-project] will create a tab for each content (website, image, etc.) and start rotating between the tabs\n5) After a configurable time, the [Tab Rotate extension][tab-rotate-project] will request a new version of the playlist and reload each tab if the playlist changed\n\n## What do you need\n\nThis project is running on the RaspberryPi hardware only. For now :)\n\nYou will need per screen:\n\n* A Raspberry Pi board: from RPi2 to RPi3 (need to test RPi4 when available)\n* A TV or monitor with HDMI\n* An HDMI cable\n* An AC power that can deliver 2.5Amp minimum with micro-USB connector (USB-C for RPi4)\n\n## How to start\n\nThe following information will help you to create the first player. This will be your master image.\n\nIf you have multiple screens, you will be able to clone this master image to avoid to redo these manual steps on the other players.\n\n### Chilipie Kiosk\n\n1) Download the [latest version of Chilipie kiosk][chilipie-kiosk-download]\n2) Follow the [Getting started][chilipie-kiosk-getting-started]\n\n### Google account\n\nTo be able to sync extensions and other settings between screens without the need to plug a mouse and keyboard, we use a dedicated Google account.\n\n// TODO: Add Google account creation steps\n\nAll the screens that are connected to this Google Account will be sync and will received the extensions to install, configure them with the same settings and you can pilot the configuration from your own computer by switching between your Google user profile and the Google screens user profile.\n\n## Howto\n\nSometimes, the content (dashboards, websites, etc.) are not accessible without authentication.\n\nWhen possible, you can use Basic Auth, API Token (Bearer, etc.) and inject them in the HTTP headers, using the Chrome Extension [Requestly][requestly-extension] for example.\n\nBe careful to create users or API tokens that have limited access (read only) to your accounts and save your credentials/api keys securely.\n\n### Contents\n\n* [Grafana][content-grafana]\n\n## Chrome extensions\n\n* [Requestly][requestly-extension] can be uses to inject HTTP headers like Auth token for Grafana dashboards or other websites that require authentication\n* [Ignore X-Frame headers][ignore-x-frame-headers-extension] can help you if you need to `\u003ciframe\u003e` a site that doesn't want to be framed\n* [Tampermonkey][tampermonkey-extension] can be useful for injecting custom JS or CSS to a page you're displaying\n\n## TODO\n\n* Finish the \"How to start\"\n* Create an Ansible role to configure and maintain the RPi automatically instead of doing manual process\n\n[content-grafana]: /doc/contents/grafana.md\n[chilipie-kiosk-project]: https://github.com/futurice/chilipie-kiosk\n[chilipie-kiosk-download]: https://github.com/futurice/chilipie-kiosk/releases\n[chilipie-kiosk-getting-started]: https://github.com/futurice/chilipie-kiosk#getting-started\n[chromium-project]: https://www.chromium.org/\n[tab-rotate-project]: https://github.com/KevinSheedy/chrome-tab-rotate\n[tab-rotate-server-project]: https://github.com/timoa/chrome-tab-rotate-server\n[requestly-extension]: https://chrome.google.com/webstore/detail/requestly-redirect-url-mo/mdnleldcmiljblolnjhpnblkcekpdkpa\n[ignore-x-frame-headers-extension]: https://chrome.google.com/webstore/detail/ignore-x-frame-headers/gleekbfjekiniecknbkamfmkohkpodhe\n[tampermonkey-extension]: https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimoa%2Fscreenkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimoa%2Fscreenkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimoa%2Fscreenkit/lists"}