- We're going to use frontier models to build the best local-first homelab experience
- YOU DON'T NEED A HOMELAB, you can run this on your laptop or machine and have the same benefits.
- By driving bluespeed with
justwe can make deterministic workflows - this means, the entire thing can be manually driven by just. So you never need AI. If you use AI you'll just go faster. And since everything will be as automated and declerative as we can make it means you can use your own local model to drive you automation. - We basically want Star Trek + Jarvis. But local first.
Bluespeed is a homelab factory. Clone this repo, run just setup, and get a fully reproducible homelab stack on your own bare-metal hardware — the same one the Project Bluefin team runs. Every tool in the stack is a CNCF project. No custom services where a CNCF tool exists. Everything is reproducible by any Bluefin contributor on their own hardware.
- Fully automate Bluefin development.
- Generalize Jorge's lab
- Build the MVP for Bluespeed which is knuckle + k3s + kubestellar
- Use hive and our agents to build and test everything.
- Users can opt in to ujust device 2.0 to send info back for us to fix!
Bluespeed ships with knuckle as its installer.
knuckle is the standalone, upstream-track TUI installer for Flatcar Container Linux — neutral, minimal, and built to be what Flatcar's official installer could be. It lives in its own repo, has its own release cycle, and accepts no homelab opinions.
Bluespeed takes knuckle and adds the opinionated layer on top.
knuckle: installs Flatcar
Bluespeed: configures everything you actually want on it
The knuckle binary inside any Bluespeed release is always a tagged, unmodified knuckle release. Never forked. Never patched.
All CNCF projects. All reproducible. All deployed with just.
| Component | CNCF Status | Role |
|---|---|---|
| knuckle | — | Flatcar TUI installer |
| OpenTelemetry Collector | Incubating | Metrics + logs from every node |
| Prometheus | Graduated | Metrics storage |
| Loki | Grafana Labs OSS | Log aggregation |
| KubeStellar | Sandbox | Multi-cluster management — Ghost: Bluespeed dashboard |
| KubeVirt | Incubating | VM management |
[PLACEHOLDER: Prerequisites — hardware, Flatcar install steps, network requirements]
# 1. Install Flatcar on your hardware using knuckle
# https://github.com/projectbluefin/knuckle/releases
# 2. Clone bluespeed
git clone https://github.com/projectbluefin/bluespeed
cd bluespeed
# 3. Deploy the observability stack to your central node
just setup-otel HOST=user@your-central-node
# 4. Deploy agents to your nodes
just setup-otel-agent HOST=user@node-1
just setup-otel-agent HOST=user@node-2
The observability stack runs on your central node and collects metrics and logs from all nodes using OpenTelemetry.
node-1 ──► OTel Collector (agent)
node-2 ──► OTel Collector (agent) ──► OTel Collector (aggregator)
node-N ──► │
┌───────────┼───────────┐
(logs) (metrics) (dashboards)
| Port | Service |
|---|---|
| 3100 | Loki |
| 4317 | OTel Collector gRPC (OTLP) |
| 4318 | OTel Collector HTTP (OTLP) |
| 9090 | Prometheus |
just setup-otel HOST=jorge@192.168.1.102
just setup-otel-agent HOST=jorge@192.168.1.247
just otel-status HOST=jorge@192.168.1.102bluespeed/
├── Justfile # all operations live here
├── otel/ # observability stack
│ ├── ghost/
│ │ ├── quadlets/ # Podman Quadlet definitions
│ ├── agent/ # per-node OTel Collector agent
│ ├── deploy.sh # deploys central-node stack
│ └── deploy-agent.sh # deploys agent to a node
└── docs/
└── CONTRIBUTING.md
- CNCF first. Every tool is a CNCF project. No custom services where a CNCF tool exists.
- Reproducible.
just setupon any compatible hardware produces the same result. - Justfile-driven. Every operation has a
justrecipe. No bespoke runbooks. - Contributor-ready. Any Bluefin contributor can deploy this on their own hardware.
- knuckle stays neutral. Bluespeed bundles tagged knuckle releases as-is. Never patched.
- Clients consume images, they don't run cluster workloads. Contributor laptops are managed via
bootcimage updates — not enrolled as k8s nodes. The cluster builds the images; the laptops boot them. This eliminates per-client agent overhead, enables atomic OS rollbacks, and keeps cluster complexity constant regardless of how many contributors join the fleet.
Working today on ghost:
- k3s single-node cluster on knuckle-1 (Flatcar VM via KVM)
- KubeStellar Console — Ghost: Bluespeed dashboard at
http://192.168.1.102:8090 - Argo Workflows + Argo Events — build pipeline at
https://192.168.1.102:2746 - Ghost: Bluespeed web panel at
http://192.168.1.102:8091
In progress:
- OTel stack migration from Podman Quadlets → k3s
bluespeed.locallocal DNS- Custom Build dashboard (Argo Workflows + BlueBuild + Zot)
Planned:
- Exo fleet leaderboard panel
- KubeVirt VM management
- Node enrollment (
just setup-otel-agent HOST=...already works)
See docs/CONTRIBUTING.md.
Apache-2.0 — see LICENSE