AAN DE HORIZON — BINNENKORT
⚓ idle harbor
Zet één optie aan en de microVM van je app wordt opgeschort naar een snapshot wanneer het verkeer stopt. Terwijl hij slaapt betaal je alleen voor de opslag van de geparkeerde VM — geen cent rekenkracht. Het volgende verzoek wekt hem in minder dan een seconde.
🧮 wat het echt bespaart
Snapshot storage costs €0.10/GB-month — the same rate as a volume. A typical microVM snapshot is about the size of its RAM allocation.
Compute is billed per second while awake, snapshot storage per second while asleep. No rounding, no minimums.
🗺️ aanzetten
The portal has a one-click toggle on every service. The idle window is configurable from 1 minute to 24 hours — shorter for webhooks that should feel instant, longer for services where the first wake can afford a brief delay.
⚙️ wat er gebeurt, stap voor stap
💡 gemaakt voor
Zijprojecten & demo's
Je portfoliostuk krijgt drie bezoekers per week. Altijd-aan is €2/maand; in de harbor kost een 512 MB-snapshot zo'n €0,05/maand — dezelfde app, een fractie van de rekening.
Webhooks & integraties
Een ontvanger die afgaat als Stripe, GitHub of n8n belt. 23 van de 24 uur in slaap, wakker zodra een payload binnenkomt — de verzender merkt de 300 ms niet.
Staging- & preview-omgevingen
Tien open PR's betekent tien preview-instances. Altijd-aan is €20+/maand voor omgevingen waar na 17 uur niemand naar kijkt. In de harbor slaapt elk wanneer de reviewer het tabblad sluit.
Interne tools
Het admin-dashboard, de rapportgenerator, de wiki die niemand op zondag leest. Tools die je uren-per-week gebruikt zouden geen uren-per-maand mogen kosten.
Functie-achtige services
Een API die op verzoek beelden omzet of PDF's rendert gedraagt zich als een functie — zonder herschrijven voor een FaaS-runtime. Deploy dezelfde container en laat harbor naar bijna-nul schalen.
Bots & assistenten
Chatbots en AI-agenten die op mentions reageren slapen tussen gesprekken. Wake-on-request houdt het gesprekstempo; de wallet houdt zijn muntjes.
Persoonlijke dev-omgevingen
Je cloud-devbox met al je tools geïnstalleerd. Actief terwijl je codeert, in slaap als je dat niet doet. Niet meer betalen voor inactieve rekenkracht tussen je avondsessie en de ochtendstandup.
Geplande batchjobs
Een service die om 03:00 rapporten verwerkt en de rest van de dag idle is. Park hem tussen runs; een cron-wektrigger (of een simpele HTTP-call) brengt hem terug precies waar hij stopte.
Workers & processors
Een HTTP-getriggerde worker die de klus klaart — een video transcoderen, een beeld verkleinen — en dan slaapt tot de volgende. De dispatcher wekt hem op verzoek, dus je betaalt alleen de seconden dat hij rekent.
Edge-achtige request-handlers
Een HTTP-handler die zich gedraagt als een serverless functie — één verzoek erin, één antwoord eruit — maar draait in een volledige Linux-microVM zonder runtime-beperkingen, en herstelt je exacte proces, niet een lege container.
🔬 onder de motorkap
For the curious: Idle Harbor uses Firecracker snapshot/restore — the same technology AWS uses for Lambda cold starts, except here the snapshot preserves your running process rather than a pre-initialized blank VM. The snapshot captures the full memory state: heap, stack, open file descriptors, everything your process had in flight.
- Encrypted at rest. The snapshot file is LUKS-encrypted under a per-service key stored in OpenBao — the same posture as your volumes and backups. Not even we can read it at rest.
- Clock resynced on wake. Time jumped while your process was frozen. We resync the guest clock before the process continues, so TLS caches, rate limiters, and anything else time-sensitive picks up correctly.
- RNG reseeded. Replaying an RNG state after a snapshot restore would be a security problem. We reseed the guest's entropy pool before your code runs again.
- TCP connections. Pre-snapshot connections are dead by the time the VM wakes — the idle window guarantees no caller is waiting. New connections establish normally after wake. If you rely on persistent outbound connections (database pools, queue consumers), your app code should reconnect on startup anyway; Idle Harbor makes it explicit.
- Node mobility. If the original node is full when you need to wake, the snapshot is transferred over the internal VLAN to a node with free capacity. Same region, same latency profile — you won't notice.
- Volumes stay attached. If your service has LUKS-encrypted volumes, they're properly unmounted before the snapshot and re-opened on wake. No data loss, no journal corruption.
⚖️ wanneer níét te gebruiken
Idle Harbor is niet voor altijd-aan-workloads:
- Langlevende WebSocket-verbindingen. Clients verbreken zodra de VM slaapt. Gebruik een altijd-aan-boot voor realtime apps.
- Queue-consumers. Een consumer die door berichten heen slaapt is kapot. Houd hem altijd-aan, of gebruik een geplande-wektrigger.
- Apps met in-process cronjobs. Plant je app zelf achtergrondwerk, dan slaapt hij door het schema heen. Externaliseer de trigger (een cron-HTTP-call) en het werkt prima.
- Latency-kritieke paden. Het eerste verzoek na een slaap duurt ~150–300 ms langer. Onzichtbaar voor menselijke verzoeken; een probleem voor betaalverwerkers of strakke-SLA-healthchecks.
Harbor is een optie die je per service aanzet, nooit standaard. De meeste teams draaien hun productie-app altijd-aan en parkeren de rest.