Local AI Box/Legal

HomeButler Source Code Offer

Draft under review. These terms are not yet in effect, and bracketed items are still to be filled in. Nothing is for sale until checkout opens.

Written offer

HomeButler release [RELEASE VERSION], and the HomeButler box shipped with it, contain software licensed under the GNU General Public License (GPL) version 2 or 3, the GNU Lesser General Public License (LGPL) version 2.1 or 3, the GNU Affero General Public License (AGPL) version 3, and other free and open-source licences.

[SELLER LEGAL NAME] offers to give any third party, for a period of at least three (3) years after the last date we ship or distribute this release (or for as long as we offer spare parts or customer support for it, if longer), a complete machine-readable copy of the corresponding source code for every component covered by the GPL, LGPL or AGPL that we distributed, including any scripts used to control compilation and installation, on a physical storage medium customarily used for software interchange, for a charge no more than our reasonable cost of physically performing this distribution (media and postage).

Faster and free: the same corresponding source, organised by release, is mirrored at [SOURCE URL] with, for each release, the exact upstream repository, version tag or commit, and container image digest of every component (see "Container images" below). We will keep that mirror available for as long as this offer is valid.

To request source on physical media, write to:

[SELLER LEGAL NAME] Attn: Open Source Compliance [ADDRESS] Email: [SOURCE EMAIL]

Please include the HomeButler release version (shown by butler status, on the box label, or in the file name of your download) and, for a box, its serial number or order number.

This offer is in addition to, and does not limit, your rights under the licence of each component. You may copy, modify and redistribute those components under their own licences. Nothing in our Terms of Sale restricts those rights.


What's in HomeButler and under which licence

HomeButler's own scripts, configuration and app are provided under [HomeButler scripts licence]. The table below summarises third-party components. The licence file or NOTICE that travels with each component is authoritative; see also THIRD-PARTY-NOTICES.md in the HomeButler home folder.

A. Bundled inside the HomeButler package (files we ship)

Component Licence Where
HaCasa Nova room dashboard (based on the Homio design) MIT stack/homeassistant/www/hacasa-nova/
Lit (bundled in hacasa-nova.js) BSD-3-Clause same
Hanken Grotesk typeface SIL Open Font License 1.1 companion/dist/fonts/
eufy-sdk Home Assistant integration (unmodified) MIT stack/homeassistant/custom_components/eufy_sdk/
Demo photos and posters (demo mode only) CC / public domain / CC0 companion/demo/media/

These are permissive licences; no source offer is required, but their licence texts must be kept with them.

B. Operating system on the pre-loaded box (and the WSL distribution used by the Windows add-on)

Component Licence Notes
Linux distribution: [DISTRIBUTION AND VERSION, e.g. Ubuntu Server 24.04 LTS / Debian 13] [VERIFY] Mixed: Linux kernel GPL-2.0; GNU tools GPL/LGPL; many others Source for every installed package version must be available. The box's release manifest records the installed packages (dpkg-query/rpm) and mirror the matching source packages at [SOURCE URL].
Docker Engine / containerd Apache-2.0
Firmware/BIOS of the mini PC Manufacturer's terms Not covered by this offer.
[Any pre-installed Windows licence, if the box ships with one] [VERIFY] Microsoft licence terms Proprietary; not covered by this offer.

C. Container images and apps downloaded from their publishers at install time

HomeButler's installer downloads these from upstream registries (Docker Hub, GitHub Container Registry, lscr.io) or project sites. On a pre-loaded box they are already on the disk, so we distribute them and this offer covers their GPL/LGPL/AGPL parts. Each image also contains a base OS layer (for example Debian or Alpine) with its own GPL/LGPL packages.

Component Main licence Notes
Home Assistant (ghcr.io/home-assistant/home-assistant) Apache-2.0 Image includes GPL/LGPL libraries (e.g. FFmpeg) and an Alpine base.
Ollama (ollama/ollama) MIT Includes llama.cpp (MIT); GPU runtime libraries under NVIDIA/AMD terms [VERIFY].
AI models (Qwen 3.5 family by default) Apache-2.0 [VERIFY per model] Model weights; any model the buyer pulls has its own licence.
Open WebUI (ghcr.io/open-webui/open-webui) Open WebUI License (BSD-3-Clause-based, with a branding clause) [VERIFY] Branding clause restricts removing "Open WebUI" branding for larger deployments — check before rebranding.
Speech: Wyoming Whisper, Piper, openWakeWord (rhasspy/wyoming-*) MIT / Apache-2.0 [VERIFY] Some Piper voices and the openWakeWord pre-trained models carry their own licences (some non-commercial, e.g. CC BY-NC-SA) [VERIFY before commercial sale]. Newer Piper releases may be GPL-3.0 [VERIFY].
Immich (ghcr.io/immich-app/immich-server, immich-machine-learning) AGPL-3.0
Immich database (ghcr.io/immich-app/postgres with VectorChord / pgvecto.rs) PostgreSQL License; VectorChord AGPL-3.0 or ELv2; pgvecto.rs Apache-2.0 [VERIFY]
Nextcloud (nextcloud:apache) AGPL-3.0 Apps installed inside Nextcloud have their own licences.
PostgreSQL (postgres) PostgreSQL License
Redis (redis:7-alpine) BSD-3-Clause up to 7.2; RSALv2/SSPLv1 from 7.4 (source-available, not OSI open source) [VERIFY tag in use] Consider pinning to Valkey or Redis 7.2 if you want only OSI licences.
Valkey (valkey/valkey) BSD-3-Clause
Jellyfin (jellyfin/jellyfin) GPL-2.0 Includes jellyfin-ffmpeg (GPL-3.0).
Seerr (ghcr.io/seerr-team/seerr) MIT
ntfy (binwiederhier/ntfy) Apache-2.0 / GPL-2.0 (dual)
nginx (nginx:alpine) BSD-2-Clause
Python (python:3.13-alpine) PSF License
Tailscale (tailscale/tailscale; Windows app) BSD-3-Clause (open-source client) The Windows/macOS GUI clients include proprietary parts under Tailscale's terms [VERIFY]. The Tailscale service is governed by Tailscale's terms.
Eufy bridge (ghcr.io/mega-yfue/ha-eufy-sdk-bridge) Apache-2.0 Bundles go2rtc (MIT) and FFmpeg (LGPL/GPL).
Matter server (ghcr.io/matter-js/matterjs-server) Apache-2.0
OpenThread Border Router (openthread/border-router) BSD-3-Clause Only with a Thread stick.
Z-Wave JS UI (zwavejs/zwave-js-ui) MIT Only with a Z-Wave stick.
Pi-hole (pihole/pihole) EUPL-1.2 Only when added with butler skills (docs/SKILLS.md).
Frigate NVR (cameras) MIT [VERIFY — not in the current release's compose files; add the exact image when it ships]
Downloads add-on (off by default): qBittorrent, Prowlarr, Sonarr, Radarr (lscr.io/linuxserver/*) GPL-2.0+ / GPL-3.0 (LinuxServer.io image scripts GPL-3.0)
Gluetun VPN client (qmcgaw/gluetun) MIT
Windows "AI/Gaming" add-on: Sunshine game streaming GPL-3.0 Installed as a Windows app.
Steam Headless (josh5/steam-headless) [VERIFY whether shipped] GPL-3.0 [VERIFY] Steam itself is proprietary (Valve's terms).
NVIDIA OpenShell (agents preview) [VERIFY] [VERIFY]
NVIDIA container toolkit / drivers Apache-2.0 (toolkit); NVIDIA proprietary licence (drivers) [VERIFY] Drivers are not covered by this offer.

Container images: how to get their source

  1. Exact versions. Each HomeButler release includes a release manifest (homebutler-<version>.manifest.json, published next to each download at [SOURCE URL]; every box also keeps its own copy at /opt/homebutler/release-manifest.json, rewritten after each install, update, upgrade or rollback, or on demand with butler manifest) that records, for every container image: the image name and tag, the image digest (sha256:…) that was installed or pre-loaded, the upstream source repository, and the matching version tag or commit. The box's copy also lists the installed OS packages and versions (dpkg-query or rpm). On a running box, docker image ls --digests shows the digests in use.
  2. Upstream source. For most components, the source for that tag is in the upstream repository listed in the manifest (for example github.com/home-assistant/core, github.com/immich-app/immich, github.com/nextcloud/server, github.com/jellyfin/jellyfin).
  3. Base-layer packages. GPL/LGPL packages inside an image's base layer (Debian, Alpine, Ubuntu) are identified by the package list in that image. We mirror the corresponding source for the digests we ship at [SOURCE URL].
  4. Our mirror controls. Upstream projects can move or delete tags. For components we distributed, we keep our own copy of the corresponding source at [SOURCE URL] for the full offer period, so you do not depend on upstream availability.
  5. AGPL components. If we have modified any AGPL component (such as Immich or Nextcloud), the modified source is at [SOURCE URL] and is offered to users who interact with it over a network, as AGPL-3.0 §13 requires. [As of [RELEASE VERSION] we ship these unmodified — VERIFY.]

Questions

[SELLER LEGAL NAME] · Attn: Open Source Compliance · [ADDRESS] · [SOURCE EMAIL]