Skip to content

Compatibility matrix

What HiveCast is tested on, what is expected to work, and what is explicitly unsupported. Honest framing.

Operating system

OSStatusInstall pathNotes
Ubuntu 22.04 LTS (amd64)tested.debPrimary CI target
Ubuntu 22.04 LTS (arm64)tested.debarm64 deb is built
Ubuntu 24.04 LTS (amd64/arm64)expected to work.debSame systemd shape
Debian 12 (Bookworm)expected to work.debSame dpkg lineage
RHEL 9 / Fedora 40not testedsource-checkoutsystemd path should work; no .rpm packaging
Arch Linuxnot testedsource-checkoutsystemd path should work
macOS 13+ (Apple Silicon / Intel)partialsource-checkoutWrapper runs; launchd integration is target state
Windows 10 / 11 (x64)partialsource-checkoutWrapper runs (Node + bash via Git Bash / WSL); Windows Service integration is target state
Container (any base)tested.deb or source-checkoutPostinst auto-detects and binds 0.0.0.0

The .deb is the supported path for production-ish use. Source-checkout works on every platform Node 20+ supports.

Node.js

VersionStatusNotes
20.xtestedUsed by .deb (vendored Node 20)
22.xexpected to workSame major-version compat
18.x or oldernot supportedSome bundled packages use newer features

The .deb ships its own Node at /opt/hivecast/node/bin/node, so the system Node version doesn't matter for .deb installs. For source-checkout, install Node 20+ via your distro's Node setup.

NATS

VersionStatusNotes
2.10.xtestedBundled with hivecast
2.11.xexpected to workSame config + JetStream API
Older NATSnot supportedJetStream features not present

hivecast install drops the bundled NATS binary (per arch). External NATS (transport.nats.mode: 'external', custom url) is supported but you're responsible for making sure it's a recent JetStream-capable version.

Browsers (for the bundled webapps)

BrowserStatus
Chrome / Chromium 120+tested
Firefox 120+tested
Safari 17+expected to work
Edge 120+expected to work (Chromium-based)
Mobile browsersnot tested
IE / legacynot supported

The bundled webapps use modern web platform features (custom elements, modern ESM, WebSocket). Older browsers will fail.

CPU architectures

archStatus.deb arch
x86_64 / amd64testedamd64
arm64testedarm64
ppc64le, riscv64not supportednone built

scripts/build-deb-installer.js:403-407 enumerates supported archs:

js
function debArchFor(nodeArch) {
  if (nodeArch === 'x64') return 'amd64';
  if (nodeArch === 'arm64') return 'arm64';
  throw new Error(`unsupported architecture for deb package: ${nodeArch}`);
}

Containers / orchestration

PlatformStatusNotes
Docker (single container)testedPer projects/matrix-worker/
Docker Compose (multiple workers)testeddocker compose up -d --scale worker=3
Kubernetesexpected to workNo specific Helm chart yet
Podmanexpected to workSame OCI image format

Container detection in postinst handles the bind-host switch automatically.

Multi-Host on one machine

PatternStatusNotes
Two hivecast Hosts on one machine, different --home and --http-portsupportedEach gets its own NATS sibling
Two Hosts sharing one NATSnot supportedEach Host's wrapper expects its own NATS
Multiple browser sessions per HostsupportedBrowser tabs each connect independently

The two-runtime dev topology (matrix-web as platform shell + matrix-edge as Device shell on the SAME Host) is supported and is the recommended dev pattern. Per CLAUDE.md's "Two-Runtime Dev Topology" section.

Filesystem requirements

  • ~500 MB for the bundled package set after install
  • Additional space for runtime logs (rotated/capped at 2 GB by journald .deb)
  • POSIX permissions (mode bits, ownership)
  • Atomic-rename support (fs.renameSync) for safe writes

POSIX-incompatible filesystems (FAT32 on Linux, etc) are not supported. NTFS via WSL2 works.

TLS / production deployment

The Host does not terminate TLS. For TLS, run a reverse proxy (nginx, Caddy, Traefik) in front. hivecast.ai itself does this.

Reverse proxyNotes
nginxTested
CaddyTested
TraefikExpected to work
HAProxyExpected to work

The proxy must:

  • terminate TLS
  • forward HTTP and WebSocket upgrades
  • preserve X-Forwarded-Proto, X-Forwarded-Host

Cookie domain must match the proxy's external host for session-cookie-based auth (auth.mode: 'public-session').

What's NOT supported

  • Running multiple Hosts under the same <host-home> (state corruption)
  • Running the Host as root for routine operation (works, but security-bad)
  • Using a non-JetStream NATS broker (some features depend on JetStream)
  • Sharing <host-home> over NFS / SMB (filesystem semantics around lock/atomic-rename are unreliable)
  • Running on Windows without WSL or Git Bash (the .mjs wrappers need bash for some operator scripts)

Versioning

HiveCast versions follow semver, but the public API surface is small (the CLI). Internal package versions move independently. Per CLAUDE.md Rule 9:

Additive-only schema evolution — never remove fields, only add optional ones

So old runtime records and config files remain readable across versions; new fields are added with sensible defaults.

See also

Source: projects/matrix-3/packages/hivecast/package.json (declared deps); projects/matrix-3/packages/host-service/package.json; projects/matrix-3/packages/hivecast/scripts/build-deb-installer.js lines 403-407 (arch table); operational testing across CI and dev environments.