12 Hobbies Studio  /  Nightjar

Infrastructure & Cost Report

Hosting the open-source project and the commercial service. Designed to start on hardware you already own, at effectively zero cloud spend, and grow only when paying users justify it.

PREPARED 2026-07-03 SCOPE OSS + COMMERCIAL STATUS PROPOSAL

Bottom line. You do not need to spend anything on cloud to launch. Phase 0 runs entirely on your Proxmox / MS-02 cluster - app, database, object storage and the GPU transcription worker - reachable from the public internet through a free Cloudflare Tunnel. Your only cost is electricity, roughly £6-£18/month. Hetzner does not enter the picture until you have real users and want uptime that does not depend on your home connection - and even then the first step is about €13 (≈£11)/month.

01The three phases at a glance

Start really small. Each phase is a deliberate, reversible step - you only move up when the previous one hurts.

Phase 0 - now

All on your Proxmox

£6-18 /mo
electricity only
  • MS-02 cluster runs everything
  • Cloudflare Tunnel = free public URL
  • GPU node does transcription
  • Great for OSS demo + private beta
Phase 1 - first users

Proxmox + durable storage

≈£11 /mo
+ electricity + AI usage
  • Compute stays on Proxmox
  • Customer audio -> Hetzner Object Storage (off-site backup)
  • Commercial AI billed per minute
  • Still no always-on cloud server
Phase 2 - paying scale

Hybrid: cloud edge + home GPU

≈£22-35 /mo
+ AI usage, scales with revenue
  • Always-on app node on Hetzner (uptime independent of home)
  • Private-tier GPU jobs still on MS-02
  • Object storage + managed backups
  • Add workers as load grows
0 Launch Proxmox only £6-18/mo 1 First users + off-site storage ≈£11/mo 2 Paying scale cloud edge + home GPU ≈£22-35/mo grows with revenue →

Figure 1 - You are here at Phase 0. Movement rightward is optional and demand-driven.

02Phase 0 - everything on Proxmox (recommended start)

One MS-02 node under Proxmox hosts the whole stack. The public reaches it through a Cloudflare Tunnel, so there are no open ports and no static IP needed. This is enough to run the open-source demo and onboard your first private beta testers.

Users web app + device Cloudflare Tunnel + DNS + TLS FREE MS-02 - Proxmox host (your hardware) at home / office App VM / LXC FastAPI + web UI Postgres + Redis 2 vCPU / 4 GB Object storage MinIO (S3 compatible) audio + transcripts on local disk GPU worker VM — RTX 3050 6GB (passthrough) faster-whisper transcription · local LLM summaries (Ollama) this is your "Private tier" - data never leaves your hardware Hetzner has no GPU - this is why home GPU matters Optional: commercial AI (Groq / OpenAI / Anthropic) for the "Cloud" tiers - pay per minute, no local GPU load

Figure 2 - Phase 0. One Proxmox host carries the app, database, storage and GPU worker. Public access is via a free Cloudflare Tunnel - no ports opened, no fixed IP.

What it costs

ItemDetail£/month
Compute + storage + GPURuns on MS-02 you already own0
Public accessCloudflare Tunnel + DNS + TLS (free tier)0
Source, CI, docsForgejo + marketing site already hosted0
Electricity - light use1 node ≈ 30 W avg @ £0.27/kWh~6
Electricity - GPU busynode + GPU under transcription load~12-18
Totalno cloud spend at all6-18

Commercial AI (if you offer the Cloud tiers) is billed per minute of audio and passed through to the customer - it is a cost of goods, not fixed overhead. Groq transcription, for example, is a fraction of a penny per minute.

03Phase 1 - add off-site durability

The moment real people trust you with recordings, a single home disk is no longer good enough. The smallest responsible step is to replicate customer audio to Hetzner Object Storage (S3-compatible, EU region for UK/GDPR). Everything else stays on Proxmox.

ItemDetail€/mo≈£/mo
Hetzner Object StorageS3 bucket, EU, ~250 GB + egress~5~4.30
Compute / GPU / DBstill on Proxmox00
Electricityas Phase 0-6-18
New cloud spendoff-site backup of customer data~5~4-5

Cloudflare Tunnel still fronts the app - no always-on cloud server yet. If your home connection drops, the service is down; that is acceptable for an early beta and is exactly what Phase 2 fixes.

04Phase 2 - hybrid, when uptime matters

Once people pay, "down because my broadband blipped" is no longer OK. Move only the always-on, lightweight parts to Hetzner - the app, database and queue - and keep the heavy GPU work on your MS-02. Hetzner has no GPU, so the home cluster remains the Private-tier engine.

Users + devices Hetzner Cloud - EU (Germany) App node - cax21 (ARM) FastAPI + Postgres + Redis + billing 4 vCPU / 8 GB - always on €12.59 / mo Object Storage (S3, EU) customer audio + backups ~€5 / mo + usage Cloud tiers -> commercial AI API Groq / OpenAI / Anthropic, per minute MS-02 - Proxmox (your hardware) Private-tier GPU worker RTX 3050 - whisper + local LLM self-hosted, private data owned (electricity only) joined to app node over WireGuard / Tailscale mesh

Figure 3 - Phase 2. Cheap always-on ARM app node in Hetzner; heavy GPU work stays home over an encrypted mesh. Cloud stays small; the expensive silicon is hardware you own.

ItemSpec€/mo≈£/mo
App nodecax21 ARM - 4 vCPU / 8 GB / 80 GB12.59~10.70
Object storageS3, EU, + usage~5~4.30
Mesh to home GPUTailscale free / self-hosted WireGuard00
Electricity (GPU)MS-02 GPU node at home-6-18
Total+ per-minute AI for Cloud tiers~18~22-35

05Hetzner options, for reference

Real pricing pulled from your account catalogue (EU region, gross EUR incl. VAT). You do not need any of these for Phase 0 - this is the menu for later. ARM (CAX) is the best value and runs the whole stack.

TypevCPU / RAM / diskGood for€/mo≈£/mo
cax11 ARM2 / 4 GB / 40 GBOSS demo box7.196.10
cax21 ARM4 / 8 GB / 80 GBapp node (recommended)12.5910.70
cax31 ARM8 / 16 GB / 160 GBapp + workers at scale25.1921.40
cx23 x862 / 4 GB / 40 GBcompatibility fallback6.595.60
cpx31 x864 / 8 GB / 160 GBCPU-bound workers20.9917.85
ccx13 dedicated2 / 8 GBguaranteed CPU51.5943.85

Important: Hetzner Cloud has no GPU instances. Any self-hosted-model (Private tier) work must run on your MS-02, or on Hetzner's separate dedicated GPU servers (~€200+/mo) - which is exactly why keeping the GPU at home is the smart, cheap play.

06What you already have

Your Hetzner account

  • howler - cx33 (4/8/80): ApisCP host running the Nightjar marketing site. Leave it be.
  • detritus - cx21 (2/4/40): utility box. Could host the OSS demo if free.
  • Internal network, 6 spare IPs, firewalls, SSH keys - ready when needed.

Your hardware

  • 3x Minisforum MS-02 under Proxmox - the primary platform for Phases 0-1.
  • One node has an RTX 3050 6 GB - the Private-tier GPU engine.
  • Plenty for demo + early beta; the GPU handles self-hosted transcription and summaries.

07Recommendation

Do nothing in the cloud yet. Stand up Phase 0 on one MS-02 node under Proxmox: an app VM (FastAPI + Postgres + Redis), a MinIO bucket for audio, and a GPU worker VM with the RTX 3050 passed through. Publish it through a free Cloudflare Tunnel at app.nightjar.12hobbies.studio. Total new spend: £0, plus a few pounds of electricity.

Only when you have people relying on it do you add Hetzner Object Storage (Phase 1, ~£4-5/mo) for off-site durability, and only when uptime becomes a promise do you add the €12.59/mo ARM app node (Phase 2). The expensive part - the GPU - never moves to the cloud, because you already own it and Hetzner cannot beat free.

Next step I can take: draft the Proxmox build kit - a docker-compose.yml for the app + MinIO stack, the Cloudflare Tunnel config, and a short runbook to bring Phase 0 up on one MS-02. Say the word.

Nightjar / 12 Hobbies Studio - infrastructure proposal, 2026-07-03. Figures are indicative: Hetzner prices are gross EUR from the live catalogue; £ conversions at ≈€1 = £0.85; electricity at £0.27/kWh. Read-only Hetzner token used for inventory only; no resources were provisioned. Rotate the token when convenient.