๐Ÿ“ˆ Roadmap Progress

Roadmap Progress #

How far the roadmap has come: every waypoint reached, newest first. A waypoint is a piece of work finished, often one decision or change; the tasks behind it are in each roadmap item’s project plan. A waypoint marked ๐Ÿ Milestone closes a version: the definition of done its plan set for that version is met. A date marked by is the latest the waypoint could have been reached, from the documentation’s history, which starts on 2025-12-16. Each month, quarter and year has a written account: open a line’s arrow to see the waypoints behind it. Waypoints reached since the last account are rolled up by roadmap item or area until the next one is written; those reached after an account was written are listed beneath it, under Since this account. The day, week, month, quarter or year that today falls in is marked in progress, with the days left in it; every other is done. A month, quarter or year counts its waypoints, its milestones and the projects completed in it (every waypoint of a roadmap item done, the last one then), and the one in progress says what it is on pace for. The bar under each heading compares that period with the busiest one shown.

November 2026

  • The core router confined to the tenant perimeter: one transit network and one route into the tenant overlay, nothing per tenant ยท Tenant Fabric, Tenant Services Tooling
  • Removing a tenant also deletes its Terraform state and dashboards (CHG-0065) ยท Tenant Removal, Infrastructure Automation
  • Removing a tenant also deletes its log lines (CHG-0065) ยท Tenant Removal, Infrastructure Automation
  • Removing a tenant revokes its API token (CHG-0065) ยท Tenant Removal, Infrastructure Automation
  • Recovery copies of the network’s configuration: the Wi-Fi controller and core router backed up after every change, where they survive losing the build server ยท Extended Management Plane, Substrate Tooling
  • Management plane architecture, deployment and troubleshooting documentation written ยท Extended Management Plane, Substrate Tooling
  • A tenant that lost the keys to its own state gets back in with a new key from the operator (CHG-0060) ยท Tenant Lifecycle, Tenant Services Tooling
  • The take-home Pi image in the tenant downloads, using Deevnet certificates by default or a starter kit for an owner’s own ยท Tenant PKI, Tenant Services Tooling
  • OpenBao sealed by split-key (Shamir) shares, opened only for a work session (CHG-0053) ยท Secrets and Identity, Substrate Tooling
  • Tenants can work from Windows laptops (CHG-0058) ยท Tenant Platform Services, Tenant Services Tooling
  • The secret store itself refuses tenant certificates for a site’s or the platform’s own names (CHG-0059) ยท Tenant PKI, Tenant Services Tooling
  • Automation repositories’ syntax and docs build checked on every pull request ยท Network Automation, Substrate Tooling
  • Every long-lived credential listed, with what it unlocks and what uses it ยท Credential Rotation, Substrate Tooling
  • A stated policy for what counts as an exposed credential and what happens next ยท Credential Rotation, Substrate Tooling
  • The Software Catalog’s rows moved into a data file that reports can compare against ยท Software Discovery, Substrate Tooling
  • Deevnet’s own software pinned to exact versions and licensed ยท Software Discovery, Substrate Tooling
  • The boundary between tenants and the site’s infrastructure written as one specification ยท Tenant Lifecycle, Tenant Services Tooling
  • The EdS console also at a name not tied to a site, console.eds.deevnet.net (EdS CHG-0047) ยท Screens and Console, EdS
  • The EdS tenant’s certificates reissued under a name not tied to a site (CHG-0055) ยท Tenant PKI, Tenant Services Tooling
  • EdS’s home Pi image rebuilt with all of its back end (EdS CHG-0048) ยท Platform, EdS

October 2026

  • EdS’s home Pi runs on its network cable alone, the radio off (EdS CHG-0046) ยท Platform, EdS
  • Spotify added as a now-playing source and controlled, switched on and off from the EdS console (EdS ADR-0031, ADR-0032, ADR-0051) ยท Now Playing, EdS
  • A track’s original album chosen by what is on it, with the song recognition service’s album weighed as an original (EdS ADR-0038, CHG-0043) ยท Now Playing, EdS
  • The first take-home Pi installed with Deevnet certificates, using a name not tied to a site (CHG-0056) ยท Tenant PKI, Tenant Services Tooling
  • EdS’s home Pi uses Deevnet certificates, under names not tied to a site (EdS CHG-0042) ยท Platform, EdS
  • Each Pi’s iTunes pairing kept, so a new SD card starts paired (EdS ADR-0052) ยท Operations and Secrets, EdS
  • One line per track recording how its album and cover were found (EdS ADR-0050) ยท Now Playing, EdS
  • EdS’s ESP32 devices verify the MQTT broker’s certificate up to the Deevnet root (EdS CHG-0042) ยท Devices and Firmware, EdS
  • EdS device setup writes the settings for two locations, the mobile site and home (EdS ADR-0049) ยท Devices and Firmware, EdS
  • Music inventory schema agreed: own keys, outside IDs kept beside them; album, edition, holding; track and recording; source ยท Schema v1, EdS Music Inventory
  • Tenant names not tied to a site, issued by the Deevnet API and Terraform provider (CHG-0054) ยท Tenant PKI, Tenant Services Tooling
  • OpenBao’s keys made outside it and loaded from the site’s vault on every build, its access restricted and audited (CHG-0036) ยท Secrets and Identity, Substrate Tooling
  • Tenant certificate authorities’ keys generated outside the OpenBao secrets manager (CHG-0036) ยท TLS Cert Automation, Substrate Tooling
  • Music inventory built as Go services with a SQLite store (eds-inventory ADR-0001) ยท Foundation and Collecting, EdS Music Inventory
  • Music inventory’s documentation and records started ยท Foundation and Collecting, EdS Music Inventory
  • Music inventory collects the iTunes library from its XML (eds-inventory ADR-0002) ยท Foundation and Collecting, EdS Music Inventory
  • Music inventory runs on EdS’s workload, beside its voice service (eds-inventory ADR-0003) ยท Serving EdS, EdS Music Inventory
  • EdS’s voice service asks the music inventory for artists and albums (EdS ADR-0047) ยท Serving EdS, EdS Music Inventory
  • EdS’s reSpeaker microphone runs its own firmware, listening on a button and then a wake word (EdS ADR-0043) ยท Voice, EdS
  • A spoken request sent whole to EdS’s workload, transcribed and made a command (EdS ADR-0042) ยท Voice, EdS
  • Voice control acts only on words its transcription service is sure of (EdS INC-0001) ยท Voice, EdS
  • The music turned down while a voice request is heard (EdS ADR-0044) ยท Voice, EdS
  • A voice request for an artist’s Nth album, counted in MusicBrainz, plays the next owned one if that one is not owned (EdS ADR-0041, ADR-0045) ยท Voice, EdS
  • EdS’s voice service asks the music inventory (EdS ADR-0047) ยท Voice, EdS
  • An EdS deploy sends only what changed (EdS INC-0002) ยท Platform, EdS
  • An album asked for by voice, by name, plays from iTunes’ library (EdS ADR-0040) ยท Voice, EdS
  • The EdS console switches the LP stand between records only and every source (EdS ADR-0039) ยท The Stand and Its Light, EdS
  • The Raspberry Pi image tenants take home kept current with its setup tool, deevnet-kit (CHG-0049โ€“0051) ยท Tenant PKI, Tenant Services Tooling
  • The touch screen by the LP stand sleeps when nothing has played for five minutes (EdS ADR-0036) ยท Screens and Console, EdS
  • EdS firmware updated over the air through the MQTT broker, rolled back if the new build cannot reach it (EdS ADR-0035) ยท Devices and Firmware, EdS
  • Each EdS device reports its presence every thirty seconds (EdS ADR-0034) ยท Devices and Firmware, EdS
  • A particular track gets its own light on the LP stand from any source, such as a scanner effect for Knight Rider (EdS ADR-0030) ยท The Stand and Its Light, EdS
  • The LP stand stays dark until sent a scene, and red blinks say how far it got (EdS ADR-0029) ยท The Stand and Its Light, EdS
  • The LP stand lights for records only, and is dim while the turntable is on (EdS ADR-0028) ยท The Stand and Its Light, EdS
  • Now playing handles gaps between tracks and long pauses, and shows no controls for a turntable (EdS ADR-0024, ADR-0025, ADR-0026) ยท Now Playing, EdS
  • The record playing named from the owner’s Discogs collection (EdS ADR-0022) ยท Now Playing, EdS
  • Now playing’s calls to outside services counted per minute (EdS ADR-0027) ยท Now Playing, EdS
  • A power beacon on the turntable: when it connects, the turntable is on (EdS ADR-0023) ยท Devices and Firmware, EdS
  • The LP stand’s colors come from the album cover: one service finds them, another makes the scene, the stand draws it (EdS ADR-0009, CHG-0001, CHG-0003) ยท The Stand and Its Light, EdS
  • The LP stand reports what it shows, with chase and morph effects on 18 LEDs (EdS CHG-0008, CHG-0009, CHG-0010) ยท The Stand and Its Light, EdS
  • The LP stand in service, its effects seen on real LEDs (EdS CHG-0009, CHG-0010) ยท The Stand and Its Light, EdS
  • Particular albums get their own light on the LP stand (EdS ADR-0019) ยท The Stand and Its Light, EdS
  • The record on the turntable heard through a sound card and identified by a song recognition service (EdS ADR-0021) ยท Now Playing, EdS
  • The EdS console, over TLS, showing what is playing, the stand and whether each part is up (EdS ADR-0018) ยท Screens and Console, EdS
  • A touch screen by the LP stand with the album cover, play/pause, skip and volume (EdS ADR-0020) ยท Screens and Console, EdS
  • Tenants’ own services on Deevnet certificates (CHG-0047) ยท Tenant PKI, Tenant Services Tooling
  • EdS device events sent over MQTT into the central log store (EdS ADR-0005, ADR-0017) ยท Devices and Firmware, EdS
  • Each music source reports on one message bus, and a now-playing service picks what is current (EdS ADR-0006, ADR-0007, ADR-0008) ยท Now Playing, EdS
  • iTunes added as a now-playing source, by remote pairing (EdS ADR-0011) ยท Now Playing, EdS
  • Services for tenants reachable on port 443, by name (CHG-0046) ยท Tenant Platform Services, Tenant Services Tooling
  • MaBell v0 done: requirements, design and the first firmware in place, the base every prototype builds on ยท MaBell Bluetooth Gateway, MaBell Bluetooth Gateway
  • EdS device secrets kept only in ESP32 flash storage, and the MQTT broker’s CA loaded (EdS ADR-0004) ยท Devices and Firmware, EdS
  • EdS’s relay Pi with a connection onto the home network, and EdS’s own Pi images (EdS ADR-0010, ADR-0015) ยท Platform, EdS
  • MaBell joined Deevnet as a tenant, its events in the central log store ยท MaBell Bluetooth Gateway, MaBell Bluetooth Gateway
  • Nightly encrypted backups, one restore rehearsed (CHG-0039) ยท Extended Management Plane, Substrate Tooling
  • Fixed addresses for tenants’ devices (CHG-0044) ยท Tenant Platform Services, Tenant Services Tooling
  • Exposed credentials rotated; every public repository scanned on push (CHG-0035) ยท Credential Rotation, Substrate Tooling
  • Deevnet’s own root and site certificate authorities created and kept offline (CHG-0033) ยท TLS Cert Automation, Substrate Tooling
  • Every machine the site builds trusts the Deevnet root certificate ยท TLS Cert Automation, Substrate Tooling
  • Every infrastructure service and appliance on the site serves a Deevnet certificate, and its clients verify it ยท TLS Cert Automation, Substrate Tooling

September 2026

  • Tenants admitted and removed, and their Wi-Fi keys rotated, by make targets on the build server ยท Tenant Lifecycle, Tenant Services Tooling
  • A reference tenant a newcomer can copy ยท Tenant Lifecycle, Tenant Services Tooling
  • Tenants log in to their own workloads and deploy their app (CHG-0028) ยท Tenant Lifecycle, Tenant Services Tooling
  • Builds take their secrets from OpenBao, none on disk (CHG-0026) ยท Secrets and Identity, Substrate Tooling
  • Central logging: a log store, each tenant seeing its own logs, device logs over MQTT, and Grafana ยท Observability, Substrate Tooling
  • The first services for tenants: Wi-Fi keys, device registry, MQTT broker, logs, a dev network, dashboards, downloads ยท Tenant Platform Services, Tenant Services Tooling
  • Each Wi-Fi network’s reach checked from a real client ยท Extended Management Plane, Substrate Tooling
  • The core router enforces a declared zone policy (CHG-0007) ยท Network Automation, Substrate Tooling
  • The EVPN/VXLAN tenant network running on one hypervisor, with internet access through the perimeter ยท Tenant Fabric, Tenant Services Tooling
  • The Deevnet API and its Terraform provider deployed; tenants built through them (CHG-0010) ยท Tenant Lifecycle, Tenant Services Tooling
  • OpenBao secrets manager deployed; the Deevnet API reads its credentials from it (CHG-0010) ยท Secrets and Identity, Substrate Tooling
  • Site management services grouped onto six VMs by domain (CHG-0008) ยท Extended Management Plane, Substrate Tooling
  • Access switch firmware updated (CHG-0006) ยท Network Firmware, Mobile Site
  • Wi-Fi access point firmware updated, so the controller can push VLANs to it (CHG-0005) ยท Network Firmware, Mobile Site
  • Wi-Fi networks and the access point set by the Omada controller from inventory, through its API ยท Network Automation, Substrate Tooling
  • The LP stand draws its own light effects and handles gamma; it is sent scenes, never frames (EdS ADR-0001, ADR-0002) ยท The Stand and Its Light, EdS
  • EdS set up as a Deevnet tenant with its own workload, using Deevnet’s MQTT broker (EdS ADR-0003) ยท Platform, EdS
  • Hosts and DNS zones renamed to a scheme that includes the site’s code (CHG-0003) ยท Builder & Core Services, Substrate Tooling
  • Tenants publish their own DNS names ยท Tenant Fabric, Tenant Services Tooling
  • The first tenant built end to end from its own repository: code, internet access and DNS ยท Tenant Lifecycle, Tenant Services Tooling

August 2026

March 2026

  • Core router, access switch, DNS and DHCP configured from code, with 12 VLANs under a zone firewall policy ยท Builder & Core Services, Substrate Tooling
  • The site’s infrastructure secrets in Ansible Vault, guarded on every commit ยท Secrets and Identity, Substrate Tooling

January 2026

  • MaBell requirements, constraints and acceptance criteria defined ยท MaBell Bluetooth Gateway, MaBell Bluetooth Gateway
  • The CaribouLite SDR image: checked on air, served remotely by SoapySDRServer ยท CaribouLite SDR, Graduated projects
  • Machines install themselves from the build server over PXE, BIOS and UEFI ยท Builder & Core Services, Substrate Tooling
  • Build server requirements defined: hardware inventory, network layout and offline artifacts ยท Builder & Core Services, Substrate Tooling
  • Bare-metal inventory and standards documented on a Hugo docs site ยท Builder & Core Services, Substrate Tooling

December 2025

  • The build server provisions the site’s infrastructure from its own Ansible collection, images and offline package mirror ยท Builder & Core Services, Substrate Tooling
  • MaBell system, power, audio and firmware design finished ยท MaBell Bluetooth Gateway, MaBell Bluetooth Gateway
  • The Omada Wi-Fi controller deployed from code on the build server ยท Builder & Core Services, Substrate Tooling
Page last modified: November 9, 2026