HOME #1: turning a cheap TV box into a homelab I can carry around
I bought a used Android TV box (HG680P, 2 GB RAM, 8 GB eMMC) flashed with Armbian, and wanted a tiny personal server that lives in my bag.
Starting point: I couldn’t even reach it. No router, no HDMI. The fix was sharing my laptop’s connection over a LAN cable (Windows ICS), ping-sweeping 192.168.137.x until something answered, then SSH-ing in.
It now runs 4 services in Docker: a Homepage dashboard, Gitea (mirroring my GitHub repos), FileBrowser Quantum, and Uptime Kuma. It also does encrypted daily restic backups to my laptop, and I actually test-restored them (72/72 files identical, SQLite integrity checks OK).
The interesting part was everything that went wrong:
- The box was pulling packages from Armbian’s nightly repo, and upgrades rewrite /boot. No HDMI means a bad boot = full reflash, so I froze the kernel, bootloader and initramfs, and checksum /boot before and after every upgrade.
- The SD slot kept failing flush commands. I spent ~3 hours testing the card with H2testw: the card was perfect, the slot wasn’t. The card now lives in a USB reader.
- Docker 29 stores images in containerd, not data-root. “Moving Docker to the SD card” would have silently filled the eMMC anyway.
- Filebrowser got archived mid-project (no more security patches), so I swapped to FileBrowser Quantum.
- My phone hotspot returns NAT64 addresses, which made Gitea refuse to mirror from GitHub.
- restic over SFTP to Windows broke because of an open Win32-OpenSSH chroot bug (#2263). I routed it through rclone instead of weakening the lockdown.
How I work: I plan and make the decisions with Claude (chat), and Claude Code executes over SSH. Every change is logged and committed, so the whole box can be rebuilt from the repo.