diff --git a/CHANGELOG.md b/CHANGELOG.md index 2192ccb..22ea31e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to KiteStacks Homelab are documented here. +## [v1.3.922] — 2026-06-09 + +### Added +- Cloud migration backup (`/home/kenpat/kitestacks-cloud`, ~4.3GB) pushed to new private Forgejo repo `kenpat/kitestacks-cloud-migration` +- 14 large files (~2.3GB: docker bind-data, syncthing-shared, scripts, /etc subset, Docker volume exports) tracked via Git LFS +- Verified all 15 LFS objects present server-side, matching `SHA256SUMS` +- Snapshot of Claude Code's memory committed to the migration repo (`claude-memory/`) with restore instructions, so context survives moving to new hardware +- **Phase 1 (in progress):** restore this backup onto a new desktop and relaunch the homelab there +- **Phase 2 (planned):** migrate the stack to an Oracle Cloud VPS for always-on hosting + +### Known Issue +- Forgejo's public hostname (`gitforge.kitestacks.com`, via Cloudflare Tunnel) returns HTTP 413 for LFS objects >~100MB. Large LFS pushes/pulls must use the local IP `100.90.13.55:3006` directly to bypass Cloudflare. + ## [v1.3.921] — 2026-06-09 ### Removed diff --git a/README.md b/README.md index 2f48216..57dd6f3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # KiteStacks Homelab - + Private GitOps repository for the KiteStacks homelab. diff --git a/docs/KiteStacks-Homelab-Documentation-v1.3.922.md b/docs/KiteStacks-Homelab-Documentation-v1.3.922.md new file mode 100644 index 0000000..7ba5db2 --- /dev/null +++ b/docs/KiteStacks-Homelab-Documentation-v1.3.922.md @@ -0,0 +1,38 @@ +# KiteStacks Homelab Documentation v1.3.922 + +**Version:** 1.3.922 +**Updated:** 2026-06-09 +**Previous:** [v1.3.921 docs](KiteStacks-Homelab-Documentation-v1.3.921.md) + +--- + +## Change Summary + +### Cloud Migration Backup Pushed to Forgejo + +- Created Forgejo repo `kenpat/kitestacks-cloud-migration`, set to **private** (contains `.env` files, tunnel tokens, app credentials). +- Pushed the full migration backup from `/home/kenpat/kitestacks-cloud` (commit `6ffcbea`, ~4.3GB total). +- Large files (archives + Docker volume exports, ~2.3GB across 14 files) tracked via **Git LFS**, since these were too big for normal git objects. +- Verified all 15 LFS objects are present server-side and match the OIDs/sizes recorded in `SHA256SUMS`. + +### Repo Contents (`kitestacks-cloud-migration`) + +- `archives/docker-bind-data.tar.gz` — `/home/kenpat/docker` bind-mounted service folders (compose files, `.env` files, app data) +- `archives/syncthing-shared.tar.gz` — `/home/kenpat/SyncthingShared` +- `archives/kitestacks-scripts.tar.gz` — local automation/script folders +- `archives/host-etc-subset.tar.gz` — selected host `/etc` config +- `volume-exports/*.tar.gz` — Docker named volume exports (kite-ai/open-webui, openproject db/pgdata/assets/logs, portainer, uptime-kuma, etc.) +- `inventory/*` — Docker, network, disk, config, and host inventory snapshots +- `restore/RESTORE.md` — first-pass restore procedure +- `SHA256SUMS` — checksums for all files in the backup + +### Known Issue: Cloudflare Tunnel LFS Upload Limit + +- Forgejo's public hostname `gitforge.kitestacks.com` (via Cloudflare Tunnel) returns **HTTP 413** for LFS uploads/downloads over ~100MB. +- Workaround used for upload: PUT large LFS objects directly to `http://100.90.13.55:3006/...` (local Tailscale IP), bypassing Cloudflare. +- Same limit will likely apply to `git lfs pull` for the 3 large objects (docker-bind-data.tar.gz ~967MB, kite-ai_open-webui.tar.gz ~963MB, syncthing-shared.tar.gz ~165MB) when accessed via the public hostname — pull via the local IP/Tailscale instead. + +### Migration Plan (Tracked Going Forward) + +- **Phase 1 (current):** Full server backup archived in `kenpat/kitestacks-cloud-migration` on Forgejo. Goal — be able to pull this repo onto a new desktop and physically relaunch the homelab from it. +- **Phase 2 (planned):** Stand up an Oracle Cloud VPS and load the server stack into the cloud, so services stay up even when the desktop is asleep/off.