The home server
A ten-year-old ThinkPad under the desk. Every nightly run on this site happens on it, and it tells my phone when something is wrong.
52 commits · first 16 Jul 2026 · last 15 Sep 2026 · 61 days
commits per week, counted from the repository when this page was last built

A Raspberry Pi that got too hot
The first home server was a Raspberry Pi 3B in a drawer. It ran the automations for a few weeks and overheated, and everything on it had to move. What replaced it was not a new machine but an old one: a ThinkPad X260 from 2016, four cores, seven gigabytes, a Linux install, and a private network so nothing on it is reachable from the open internet.
The commits below are not the server itself. They are the three things that make an old laptop a server I can trust while I sleep: a cost cockpit, a bridge to my phone, and a watchdog for the machine.
First commit
3c053e7 16 Jul 2026
The first commit put the cost cockpit under version control, in the state it was already running. It shows what the agents spend per day and per model, and how close I am to the limits of my subscription. Every cost number on this site starts here.
That cockpit grew into a system of its own and has its own page now, with the limits, the wall you hit inside a five-hour window, and the fault it still carries. What stays here is the machine underneath it.
A read-only bridge to my phone
76e2abf 16 Jul 2026
The same day, a Telegram bridge: from my phone I can ask the machine what is running and what a loop did last night. Read-only by design, with one exception added later for filing an idea. The rule that agents do not get a second door to the outside applies to me too.
The Mac reports its health here
903c4a7 13 Aug 2026
My workstation kept running out of memory during long sessions, and I only found out when it froze. Now it reports memory and the heaviest programs to the cockpit on the server every few minutes, and the server, not me, notices the trend. Measured by program, never by process: sorting by process hides the biggest consumer every time.

The session asks me on my phone
4848cf4 15 Aug 2026
A back channel: an agent running on the server can ask me a question, it lands on my phone, and the agent recognises my answer by its timestamp. It is the one place where a nightly run may wait for a human, and it waits for me, not for a model.
I measured after the restart and concluded there had never been a problem
cfa3aea6 13 Aug 2026
The machine froze. I looked at the numbers afterwards — plenty of memory free, the pressure counter untouched — and reported that there was no memory problem at all. Both numbers were from the runtime after the restart, and the restart is what had reset them. I had examined the healed patient and concluded there had never been a disease.
The second mistake outlived the first. I had listed the largest single processes, seen a maximum of 0.61 gigabytes and called it harmless. The editor runs in twenty-three of them; together they held 5.2 gigabytes and were the largest item on the machine. The operating system’s own activity monitor sorts the same way and hides the same thing. The watchdog now sums per program and writes a line every minute, so that the curve before the next freeze exists instead of being wiped by it.
What it does tonight
Twelve services, up for eight days at the time of the screenshot, fourteen cron loops between half past midnight and two, a cost cockpit, a bridge to my phone, and a watchdog that watches the machine and the workstation next to it. When it breaks, I hear about it before I go looking.
Runs on its own
- all nightly loops, all five sites’ pipelines, the cockpit, the cost cockpit
- health reports from the workstation, summed by program
- push notifications with deduplication that actually deduplicates
- a configuration snapshot every night before the backup pulls it
Stays with me
- the root password for most restarts, deliberately
- answering the back channel
- deciding what gets migrated here at all
Hardware cost: a laptop I already owned. Electricity is not measured. The AI spend it tracks is on the cockpit above.


Where this goes
It stays a laptop until a measurement says otherwise. The next work is not more services but fewer silent failures: a ring of run markers, each checked from a different machine, so that a dead watchdog cannot be mistaken for a quiet one.