bootload

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.

dinghy · ¼ vCPU / 512 MB
€2.00/month always-on
~€0.10/month harbored at 2 h/day active
compute for 60 h + 0.5 GB snapshot storage
sloop · 1 vCPU / 2 GB
€8.00/month always-on
~€0.50/month harbored at 4 h/day active
compute for 120 h + 2 GB snapshot storage
10 PR previews · dinghies
€20.00/month always-on
~€1.50/month harbored during review hours
active ~3 h/day, asleep overnight and weekends

Compute is billed per second while awake, snapshot storage per second while asleep. No rounding, no minimums.

🗺️ aanzetten

idle harbor
$ bootload deploy --image ghcr.io/you/app --idle-harbor --idle-after 15m …15 quiet minutes later… ⚓ app dropped anchor in the harbor — compute billing stopped now paying: snapshot storage only (~€0.05/month for this service) …a visitor arrives… 🌊 app under sail again in 0.3s — the visitor just sees the page # already deployed? toggle it on without a redeploy: $ bootload service set --idle-harbor --idle-after 10m # or flip it off: $ bootload service set --no-idle-harbor

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

🕐
traffic stops for N minutes
The gateway notices no requests have arrived for the configured idle window (default: 15 min, down to 1 min). It signals the node.
📸
snapshot taken — < 1 second
The node agent freezes the running Firecracker microVM and writes the full memory state to an encrypted snapshot file on disk. Your process is captured mid-execution — open files, network state, heap, everything.
vCPU and RAM freed
The VM is torn down. The CPU slot and memory are returned to the node. Billing flips: compute meters stop, snapshot storage starts (€0.10/GB-month — the same rate as a volume).
🔔
a request arrives
The gateway catches the incoming request and holds it — the caller's connection stays open, no error is returned. The agent is signaled to restore.
🌊
VM restored — ~150–300 ms
Firecracker loads the snapshot back into a new microVM. The clock is resynced to wall time, the RNG is reseeded (so you never replay entropy state), and LUKS volume mappers are re-opened if the service has volumes attached.
health check passes — request released
A quick health probe confirms the process is responding. The held request is forwarded, completes normally, and the service is back under sail. The visitor sees a page, not an error.

💡 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.

⚖️ wanneer níét te gebruiken

Idle Harbor is niet voor altijd-aan-workloads:

Harbor is een optie die je per service aanzet, nooit standaard. De meeste teams draaien hun productie-app altijd-aan en parkeren de rest.

🪙 bekijk prijzen meld je aan — harbor komt eraan