Cast dashboards at any URL to your TV non-interactively without tab mirroring.
This application is a static site built with Gatsby, tested with Pa11y and Jest, with infrastructure managed by Terraform.
A modern version of Node.js is required. If you’re relatively up-to-date, you’ll probably be able to install and run without issues. If you’re having troubles, try the version of Node used to run tests on CircleCI.
After cloning this repository, install dependencies:
npm install
Ensure everything is working as expected by running the tests:
npm test
To start the development server to see the site locally, run:
npm start
To Cast URLs locally to a local Chromecast device, you’ll need to register a test Chromecast application with Google using the serial number of your Chromecast that you’ll be testing with.
-
Register a new Cast application.
- This application is a Custom Receiver.
- When setting the Receiver Application URL, do not use
http://localhost:8000
, or the Chromecast will attempt to navigate to itself instead of your computer. Instead, use your computer’s IP address or hostname.
-
Create a
.env
configuration file with the Cast application’s identifier in the root directory of this repository:CAST_APPLICATION_ID=12345678
-
Register your Chromecast as a test device.
- To easily get your device’s serial number, look for the small speaker icon next to the Serial Number field to have your Chromecast read out and display its serial number on your TV.
-
Wait 15 minutes. According to Google, it may take up to 15 minutes to register your device.
-
Reboot your Chromecast. This can be done using the Google Home application, or by unplugging it from power and plugging it back in.
Web application deploys happen automatically upon merging to master by CircleCI. See the CircleCI configuration for more details.
This app is deployed as a static site on Amazon S3, with certificates and caching provided by Amazon Cloudfront, managed by Terraform. See /infrastructure
to examine the provisioned infrastructure more specifically.