https://github.com/techofourown/img-ourbox-woodbox
Build and publish Ubuntu-based installer images for OurBox Woodbox (x86-64).
https://github.com/techofourown/img-ourbox-woodbox
airgap image-build installer-media ourbox ubuntu woodbox x86-64
Last synced: 3 months ago
JSON representation
Build and publish Ubuntu-based installer images for OurBox Woodbox (x86-64).
- Host: GitHub
- URL: https://github.com/techofourown/img-ourbox-woodbox
- Owner: techofourown
- Created: 2026-02-24T18:07:33.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-27T13:37:22.000Z (3 months ago)
- Last Synced: 2026-03-27T23:59:09.182Z (3 months ago)
- Topics: airgap, image-build, installer-media, ourbox, ubuntu, woodbox, x86-64
- Language: Shell
- Homepage: https://techofourown.com
- Size: 819 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# img-ourbox-woodbox
Build repository for **OurBox Woodbox** — a local-first x86-64 appliance running the OurBox
software platform. This repo produces the Woodbox OS payload and the Woodbox installer
substrate consumed by the unified host-side installer.
**Hardware**: x86-64 desktop-class PC, UEFI, NVMe system disk, SATA data disk
**OS base**: Ubuntu Server LTS 24.04 (x86-64), autoinstall via cloud-init
**Runtime**: offline single-node k3s, deployed from the selected substrate bundle
## Identifiers
- **Model ID**: `TOO-OBX-WBX` (Woodbox hardware class)
- **Default SKU**: `TOO-OBX-WBX-BASE-JU3XK8`
- **Build target**: `x86`
## If You Want To Install A Woodbox
Do not start from this repo.
Woodbox installation now goes through the unified host-side installer:
- repo: `https://github.com/techofourown/sw-ourbox-installer`
- normal operator command:
```bash
cd sw-ourbox-installer
./tools/prepare-installer-media.sh
```
That flow:
- chooses the Woodbox OS artifact on the trusted host
- chooses one or more application catalogs on the trusted host
- merges those catalogs into one effective catalog on the host
- chooses the merged default app set, all apps, or a custom app subset from
that merged catalog on the trusted host
- pulls the published Woodbox installer substrate artifact
- composes mission media
- flashes removable media
- installs fully offline on the target
This repo is not the operator front door for artifact selection or USB
composition anymore.
The helper at [tools/prepare-installer-media.sh](/techofourown/img-ourbox-woodbox/tools/prepare-installer-media.sh)
now delegates to `sw-ourbox-installer`; it does not maintain a separate
Woodbox-only operator flow.
## What This Repo Owns
This repo still owns the Woodbox-specific surfaces below the hardware seam:
- Woodbox OS payload build and publish
- Woodbox installer substrate build and publish
- Woodbox target runtime install behavior
- Woodbox storage, boot, and hardware-specific installation logic
- Woodbox host-side media adapter surface used by `sw-ourbox-installer`
## Operator runbook
See [`docs/OPS.md`](./docs/OPS.md) for the full operator runbook including:
- Individual build steps
- Registry operations (publish/pull)
- Post-boot verification
- Updating upstream platform inputs
- Troubleshooting
## Artifact model
Woodbox now has a two-layer model:
- this repo publishes target-owned artifacts
- `sw-ourbox-installer` composes final mission media from those artifacts
Published artifacts from this repo:
| Artifact | ORAS artifact type | Registry |
|---|---|---|
| OS payload (`.tar.gz`) | `application/vnd.techofourown.ourbox.woodbox.os-payload.v1` | `ghcr.io/techofourown/ourbox-woodbox-os` |
| Installer substrate ISO (`.iso`) | `application/vnd.techofourown.ourbox.woodbox.installer.v1` | `ghcr.io/techofourown/ourbox-woodbox-installer` |
Official channel tags: `x86-beta`, `x86-stable`, `x86-nightly`, `x86-exp-labs`,
`x86-installer-beta`, `x86-installer-stable`, `x86-installer-nightly`,
`x86-installer-exp-labs`
Important distinction:
- the published installer ISO is a substrate artifact, not the supported standalone install path
- the supported install path is host-composed mission media created by `sw-ourbox-installer`
- mission media embeds the selected OS payload, a synthesized application
bundle derived from one or more selected catalogs, selected-app metadata, and
the mission manifest
- the target then installs from those local mission bytes only
See [`docs/ARTIFACT_PROVENANCE.md`](./docs/ARTIFACT_PROVENANCE.md) for the full provenance model
and official release policy.
## Official build posture
Official artifacts are produced by organization-controlled build infrastructure per
[ADR-0008](https://github.com/techofourown/org-techofourown/blob/main/docs/decisions/ADR-0008-adopt-organization-controlled-build-infrastructure-for-heavy-artifacts.md).
- Official candidate: push to `main` via `.github/workflows/official-candidate.yml` → publishes `x86-beta` / `x86-installer-beta`
- Integration nightly: daily cron via `.github/workflows/integration-nightly.yml` → publishes `x86-nightly` / `x86-installer-nightly`
- Stable promotion: GitHub Release `published` via `.github/workflows/official-promote-stable.yml`
- Exp-labs promotion: GitHub Release `prereleased` via `.github/workflows/official-exp-labs.yml`
- Heavy-build runners: `[self-hosted, official-heavy, x86-image]` (organization-controlled)
Official Woodbox builds publish:
- the OS payload artifact
- the Woodbox installer substrate artifact used by host-side mission composition
Terminology note:
- the transport artifact is named `ourbox-substrate` in OCI and runtime surfaces
- the user-facing meaning is "application catalogs" plus a selected app set
Candidate builds resolve exact upstream refs from the approved
`sw-ourbox-os/release/approved-upstream-inputs.json` snapshot pinned in
`tools/approved-upstream-inputs.upstream.env`.
Scheduled nightly integration builds intentionally bypass that approved snapshot
and resolve the latest upstream nightly/platform inputs at workflow time.
The offline-install contract now lives in the Woodbox substrate itself:
- target package installation comes from substrate-local media, not Ubuntu mirrors
- target netplan is rendered from hardware inventory, not the live installer's default route
- target-side OS and `ourbox-substrate` browsing/pulling are removed from the supported path
## Documentation
| Document | Contents |
|---|---|
| [`sw-ourbox-installer`](https://github.com/techofourown/sw-ourbox-installer) | Unified host-side installer and mission-media composer |
| [`sw-ourbox-os`](https://github.com/techofourown/sw-ourbox-os) | Upstream platform-contract and install-defaults producer |
| [`docs/OPS.md`](./docs/OPS.md) | Operator runbook |
| [`docs/ARTIFACT_PROVENANCE.md`](./docs/ARTIFACT_PROVENANCE.md) | Artifact provenance and release policy |
| [`docs/reference/contracts.md`](./docs/reference/contracts.md) | Host contracts (release metadata, storage, installer) |
| [`docs/reference/installer.md`](./docs/reference/installer.md) | Installer reference (defaults, UX flow, artifact contract) |
| [`docs/reference/platform-contract.md`](./docs/reference/platform-contract.md) | Platform input consumption from sw-ourbox-os |
| [`docs/decisions/`](./docs/decisions/) | Architectural Decision Records |