Skip to content

Repository files navigation

RackThing

rackthing-demo-public.mp4

RackThing repurposes a discontinued Spotify Car Thing as a compact, touch-first dashboard for a homelab rack. A Nocturne connector serves the interface and bridges Spotify playback, Home Assistant state, OPNsense telemetry, and optional website statistics to the Car Thing display.

This repository is an early source release extracted from a working personal installation. Expect some setup work: integrations and entity names vary between homelabs.

What it does

  • Touch-oriented Spotify now-playing controls and queue
  • Rack overview with live OPNsense telemetry through Home Assistant
  • Home Assistant-powered night mode
  • Optional website statistics from Apache access logs
  • Ambient mode with locally supplied media
  • Chromium watchdog that restores the dashboard after disconnects

Architecture

Home Assistant ─┐
OPNsense ───────┼─> Nocturne connector ──USB network──> Spotify Car Thing
Apache logs ────┘       Python + static web UI              Chromium

The supplied defaults assume the common connector-side USB address 172.16.42.1, Car Thing address 172.16.42.2, and HTTP port 8088. Override host-specific settings with the environment variables documented below.

Requirements

Those are the only required devices. Home Assistant, OPNsense, Proxmox, a game server, website statistics, and custom wallpapers are optional.

RackThing does not replace the initial Nocturne installation. Nocturne runs on the Car Thing, while Nocturne Connector runs on the Raspberry Pi. RackThing then installs its dashboard files on that Connector Pi.

Quick installation

1. Set up Nocturne first

If your Car Thing and Connector Pi already work together in Nocturne, skip to step 2. Otherwise:

  1. Follow the official Nocturne installation guide to install Nocturne 4.0.0 or later on the Car Thing.
  2. Download the current Connector image from Nocturne Connector releases.
  3. Flash that image to the Pi's SD card using Raspberry Pi Imager or balenaEtcher.
  4. Boot the Pi, visit http://nocturne-connector.local, and finish its on-screen Wi-Fi and Spotify setup.
  5. Connect the Car Thing to the Pi with a USB data cable and confirm ordinary Nocturne works before installing RackThing.

2. SSH into the Connector Pi

From PowerShell, Terminal, or another computer on the same network, run:

ssh root@nocturne-connector.local

If that hostname does not resolve, find the Pi's IP address in your router and use ssh root@PI_ADDRESS. Use the SSH credentials configured for your Connector image.

3. Download RackThing on the Pi

The Connector image may not include Git, so this download method uses wget and tar:

cd /tmp
wget -O rackthing-main.tar.gz https://github.com/hdog27/RackThing/archive/refs/heads/main.tar.gz
tar -xzf rackthing-main.tar.gz
cd RackThing-main

If Git is installed, git clone https://github.com/hdog27/RackThing.git works too.

4. Preview and run the installer

Run the dry-run first. It lists what will be copied without changing anything:

./install.sh --dry-run
./install.sh

The installer defaults to /data/rackthing, backs up an existing UI, preserves existing configuration and credentials, and creates starter files on a clean installation. Use --target PATH to choose another location.

5. Edit your configuration

RackThing includes a real, safe-default config.json. The installer copies it to /data/rackthing/config.json on a new installation and preserves it during later updates.

Edit it on the Connector Pi:

vi /data/rackthing/config.json

Use it to change the displayed weather/location values, Proxmox and game-server labels, website label, Home Assistant night-mode entity, and OPNsense sensor entities. Leaving a feature unconfigured displays a neutral placeholder instead of somebody else's location or server data.

Home Assistant credentials are deliberately kept out of config.json. If you want the Home Assistant or OPNsense features, edit the private secrets file:

vi /data/rackthing/secrets.env

Add your own HA_URL and a dedicated Home Assistant long-lived access token. Never post or commit that file.

6. Start the RackThing server

/data/rackthing/start.sh

The dashboard should now be served from http://172.16.42.1:8088/ on the Connector's USB network.

7. Point the Car Thing display at RackThing

This is a one-time change on the Car Thing. From the Connector Pi, SSH into the Car Thing:

ssh root@172.16.42.2

Nocturne's current development documentation lists nocturne as the default password. Follow Nocturne's official Displaying your local changes on the Car Thing instructions to remount the root filesystem read/write and edit the Chromium --app= URL. Set that URL to:

http://172.16.42.1:8088/

Then remount read-only, sync, and restart Chromium as described in the Nocturne guide. Nocturne releases may change the location of their Chromium configuration, so use their current instructions rather than blindly editing an old path.

RackThing's optional watchdog assumes that the Connector can SSH to the Car Thing at 172.16.42.2. Advanced users can place a dedicated key at /data/rackthing/ssh/carthing_key and its host entry in /data/rackthing/ssh/known_hosts.

After installation, your important local files are:

  • /data/rackthing/config.json — public, non-secret display and entity settings
  • /data/rackthing/secrets.env — private Home Assistant URL and token
  • /data/rackthing/ssh/ — private SSH material for optional device automation
  • /data/rackthing/wallpapers/ — optional user-supplied media

Do not blindly run these scripts on a production system. Review the paths, addresses, entities, and SSH permissions first.

Configuration

Variable Default Purpose
RACKTHING_ROOT /data/rackthing Application and generated-data directory
RACKTHING_TZ UTC POSIX timezone string used by the clock
RACKTHING_URL http://172.16.42.1:8088/ Dashboard URL loaded on Car Thing
RACKTHING_CARTHING_HOST 172.16.42.2 Car Thing host used by the watchdog
RACKTHING_CARTHING_SSH_HOST root@172.16.42.2 SSH target used by night mode
RACKTHING_CARTHING_SSH_KEY $RACKTHING_ROOT/ssh/carthing_key Private key path; never commit it
RACKTHING_KNOWN_HOSTS $RACKTHING_ROOT/ssh/known_hosts Dedicated SSH known-hosts file
RACKTHING_NIGHT_MODE_ENTITY input_boolean.rack_night_mode Home Assistant night-mode entity
RACKTHING_WEBSITE_SSH_HOST unset Enables optional Apache-log statistics
RACKTHING_WEBSITE_SSH_KEY $RACKTHING_ROOT/ssh/apache_key Optional web-server SSH key

Media and privacy

Wallpaper Engine and Steam Workshop media are not included. A Workshop subscription grants access for personal use; it does not automatically grant permission to redistribute a creator's files in this repository. Supply your own media, use assets with a compatible license, or obtain permission from each creator. Record attribution and license information for every bundled asset.

The optional website integration processes visitor IP addresses. Keep its JSON feed on a trusted network, disclose logging where required, and follow applicable privacy rules.

Project status

RackThing currently reflects one working homelab installation. Contributions that make configuration, installation, and hardware compatibility more portable are welcome.

The weather, Proxmox, and game-server panels are currently UI placeholders, not portable data integrations. They intentionally show unconfigured values in the public release. Spotify, Home Assistant night mode, OPNsense telemetry, and the optional Apache statistics bridge contain the current live integration code.

The first public release uses the MIT License. Third-party visual components are documented separately in ASSETS.md.

Disclaimer

RackThing is an independent community project. It is not affiliated with, endorsed by, or sponsored by Spotify. Spotify, Car Thing, Steam, Wallpaper Engine, Home Assistant, OPNsense, and other names are trademarks of their respective owners.

License

RackThing's original code is available under the MIT License. Third-party assets remain subject to their respective licenses; see ASSETS.md.

About

A liquid glass homelab dashboard that repurposes Spotify Car Thing hardware with Nocturne, Home Assistant, Proxmox, Weather, and OPNsense integrations.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages