Homescale is an experiment in building PlanetScale at home. It creates writable database instances and point-in-time branches from immutable snapshots without copying the full database. Kubernetes provides the control plane, while Rook operates Ceph and Ceph RBD provides block storage, snapshots, and copy-on-write clones.
- At least 20 GiB free host storage
- mise
Install the tools, then use the task commands:
mise install
task up
task test
task down
task cleanupupcreates or starts the VM, installs K3s, snapshots, Rook, and Ceph, then exits when Ceph reportsHEALTH_OK.testverifies point-in-time snapshot restore and copy-on-write isolation.downgracefully stops the VM while preserving its root and OSD disks.cleanupdeletes the VM, OSD disk, and all local Homescale data.
The local infra runs on a single-node K3s cluster in a Lima VM. Rook operates a single-node Ceph cluster whose only OSD consumes a dedicated Lima raw disk. Applications receive RBD-backed PVCs through the homescale-rbd StorageClass and clone them through the matching VolumeSnapshotClass.
Provisioned Ceph has one monitor, one manager, one OSD, and one copy of every object. There is no redundancy or backup.
| Component | Version |
|---|---|
| Lima | 2.1.4 |
| K3s / Kubernetes | 1.36.2 |
| Rook | 1.20.2 |
| Ceph | 20.2.2 (Tentacle) |
| Ceph CSI operator and drivers | 1.0.4 |
| CSI snapshot controller | 8.5.0 |
mise exec -- limactl shell homescale sudo journalctl -u k3s
KUBECONFIG="$PWD/.state/kubeconfig" mise exec -- kubectl get pods -n rook-ceph
KUBECONFIG="$PWD/.state/kubeconfig" mise exec -- kubectl \
-n rook-ceph exec deployment/rook-ceph-tools -- ceph status