Why you need a machine that never sleeps — mineti.dev<br>Why you need a machine that never sleeps<br>seed · Aug 9, 2026
TL;DR<br>My knowledge base only existed while some device was awake, and my personal<br>projects were chained to one notebook. Both problems share a missing<br>ingredient: a machine that is always there . A small<br>always-on server (~€9/month) now keeps the notes syncing and<br>version-controlled around the clock, and hosts persistent coding<br>agent sessions I can drive from a phone — while staying completely<br>dark to the public internet. It has since grown a job I didn't plan for:<br>reaching my tasks, mail, and calendar too.
Two problems
A note I type on my phone at a bus stop becomes a commit in a git repository a<br>few minutes later, with every one of my devices asleep. It took a server<br>costing about €9 a month to make that sentence true, and the same server fixed<br>a second problem I had filed as unrelated.
The first problem was my knowledge base. I have kept an Obsidian vault since<br>2021, and for most of those years the pattern was manual at both ends: I wrote<br>the notes by hand and retrieved them by hand, through search, backlinks, and<br>opening one note to find the next. What changed recently is not the notes but<br>the interface to them. I have been reshaping the vault along the lines of<br>Andrej Karpathy’s LLM wiki spec:1 raw sources stay immutable in their<br>own layer, a wiki of interlinked pages sits on top of them, and the model does<br>the writing and the bookkeeping — “you never (or rarely) write the wiki<br>yourself.” Retrieval stops being a search and becomes a question, and a good<br>answer gets filed back as a new page instead of scrolling out of a chat window.
That shift changes what the vault needs from the machine underneath it. A<br>manual vault only has to be open when I am reading it. A vault whose main<br>reader and writer is a model needs something to run that model against it:<br>ingesting sources, updating the pages a new note touches, checking for<br>contradictions and orphans. None of that happens on a laptop that spends the<br>day closed.
Obsidian Sync2 keeps the vault consistent across my devices, but sync<br>only happens between clients that are running. Close the notebook, pocket the<br>phone, and the vault stops converging; it exists as a coherent whole only in<br>the moments when some device happens to be awake. Three consequences follow.<br>There is no continuous history — Sync keeps version snapshots, but nothing like<br>a commit log. There is no backup outside the sync system itself. And, the one<br>that now mattered most, there is no way for anything else to read the vault:<br>the assistant the new pattern depends on has no vault to look at unless one of<br>my devices is open.
The second problem looked unrelated. My personal projects live on a notebook<br>running WSL inside Windows, and the way I build them has shifted to long-running<br>AI coding agent sessions — the working style I described in an earlier<br>article. Those sessions die with the notebook<br>lid too. Away from the desk all progress stops, and there is no such thing as<br>checking on a task from a phone, or letting an agent keep working while I am<br>somewhere else.
Both problems are the same problem. The vault needs a peer that is always<br>online; the projects need a session that never closes. Neither needs the<br>machine to be large.
One small server, two jobs
The answer is a small cloud VPS at Hetzner — a few cores, a few gigabytes of<br>RAM — running Ubuntu and doing both jobs at once. That €9 buys the machine and<br>nothing else: the assistant subscription that makes any of it useful is a<br>separate line item, and a larger one. Anyone pricing this should count both.
The dashed line is the private mesh: devices and server sit inside it, and nothing outside it can open a connection inward. Every arrow crossing it points outward — notes merging through Obsidian Sync, vault history going to GitHub, and the everyday services the agent reaches on my behalf.
The defining property of the setup is that the server is dark to the<br>internet . The cloud firewall is default-deny inbound; the only thing allowed<br>through is Tailscale’s UDP port, carrying the encrypted mesh that connects my<br>devices to the server.3 SSH exists only inside that mesh, so there<br>is no public port to find, scan, or brute-force. If the mesh ever fails, the<br>provider’s web console is the out-of-band way back in.
The vault gets a resident peer
The server joins the same Obsidian Sync mesh as my devices — headlessly, via<br>Obsidian’s official command-line client,4 running as a system service<br>that survives reboots and needs no session attached. From the vault’s point of<br>view it is just another device, one that never sleeps. Any two devices now sync<br>through a peer that is always online.
Then the server does what my devices never could: it puts the vault under<br>version control. Every fifteen minutes a timer commits whatever changed and<br>pushes to a private GitHub repository. That is the bus-stop sentence from the<br>top of this piece, and...