Stack~
18 October 2026 7 min Members infrastructure vps migration costs

Moving the whole thing to a $23 VPS

The cutover took eight minutes: four CNAMEs, one tunnel, a week of preparation. The hard part was not the DNS — it was admitting that the vectors could not travel.

Labels used throughout. [MEASURED] — from the deploy log, the box snapshot or a captured command in the pack. [FACT] — a file in the pack. [OPINION] — mine.

The machine that now runs everything is an OVH VPS-4: eight vCores, 24 GB of RAM, 200 GB of NVMe, a 3 Gbps pipe, $23.37 a month — about $280 a year [MEASURED, the deploy log §2]. It replaced a 17-inch gaming laptop in a closet, which had a GPU and no bill.

That sentence sounds like a downgrade. It is the opposite: the reader’s 13.4 GB of pinned model memory had already moved to Modal (that is the previous piece), so what was left on the laptop was an engine that had to be awake all the time and rarely needed a GPU. Paying rent for a GPU to sit idle is the expensive way to run a service. Paying $23.37 for eight vCores is the cheap way.

The migration is interesting because of what had to stay behind.

Members only

This piece is part of the members' archive — $8 a month or $80 a year.

$8 / month · $80 / year

Sign in if you are already a member, or create an account.

Sign in · Create an account

The proof pack — attachments

Included with the piece — 14 files, 146 KB. Sign in as a member to download.

  • Reader brief — plan a cutover you can roll back 00-reader-brief.md · 6.9 KB · sha256 f288dd73
  • The box, as found (2026-10-14) box-state.md · 6.7 KB · sha256 67e9ec2b
  • cloudflared: the public front door config/cloudflared.yml · 2.0 KB · sha256 cc86d714
  • SSH aliases for the box config/ssh-config.txt · 2.2 KB · sha256 d4a576cd
  • The cutover, from the deploy log cutover-timeline.md · 3.0 KB · sha256 c4559604
  • Licence — personal use licence.md · 0.5 KB · sha256 cd1f7f1c
  • How to reproduce the move reproduce.md · 2.4 KB · sha256 fef78979
  • The deployment runbook — as built runbook.md · 96.4 KB · sha256 00d1bf7d
  • doctor-workspace.sh — expect the box to match scripts/doctor-workspace.sh · 8.2 KB · sha256 b71ffe59
  • refresh-from-source.sh — rebuild the deployed copy scripts/refresh-from-source.sh · 4.2 KB · sha256 be9a4c95
  • vps-login.sh — the three routes to the box scripts/vps-login.sh · 2.8 KB · sha256 6f6daf4e
  • vps-sync.sh — the deploy path scripts/vps-sync.sh · 6.8 KB · sha256 bda20e69
  • systemd: the reranker sidecar systemd/metatron-rerank.service · 1.3 KB · sha256 0aa12aef
  • systemd: the engine unit systemd/metatron.service · 3.1 KB · sha256 c606f816