diff --git a/docs/infrastructure-report.html b/docs/infrastructure-report.html deleted file mode 100644 index f5aabbc..0000000 --- a/docs/infrastructure-report.html +++ /dev/null @@ -1,400 +0,0 @@ - - - -
- - -12 Hobbies Studio / Nightjar
-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.
- -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.
-Start really small. Each phase is a deliberate, reversible step - you only move up when the previous one hurts.
- -Figure 1 - You are here at Phase 0. Movement rightward is optional and demand-driven.
-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.
- -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.
-| Item | Detail | £/month |
|---|---|---|
| Compute + storage + GPU | Runs on MS-02 you already own | 0 |
| Public access | Cloudflare Tunnel + DNS + TLS (free tier) | 0 |
| Source, CI, docs | Forgejo + marketing site already hosted | 0 |
| Electricity - light use | 1 node ≈ 30 W avg @ £0.27/kWh | ~6 |
| Electricity - GPU busy | node + GPU under transcription load | ~12-18 |
| Total | no cloud spend at all | 6-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.
- -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.
-| Item | Detail | €/mo | ≈£/mo |
|---|---|---|---|
| Hetzner Object Storage | S3 bucket, EU, ~250 GB + egress | ~5 | ~4.30 |
| Compute / GPU / DB | still on Proxmox | 0 | 0 |
| Electricity | as Phase 0 | - | 6-18 |
| New cloud spend | off-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.
- -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.
- -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.
-| Item | Spec | €/mo | ≈£/mo |
|---|---|---|---|
| App node | cax21 ARM - 4 vCPU / 8 GB / 80 GB | 12.59 | ~10.70 |
| Object storage | S3, EU, + usage | ~5 | ~4.30 |
| Mesh to home GPU | Tailscale free / self-hosted WireGuard | 0 | 0 |
| Electricity (GPU) | MS-02 GPU node at home | - | 6-18 |
| Total | + per-minute AI for Cloud tiers | ~18 | ~22-35 |
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.
-| Type | vCPU / RAM / disk | Good for | €/mo | ≈£/mo |
|---|---|---|---|---|
| cax11 ARM | 2 / 4 GB / 40 GB | OSS demo box | 7.19 | 6.10 |
| cax21 ARM | 4 / 8 GB / 80 GB | app node (recommended) | 12.59 | 10.70 |
| cax31 ARM | 8 / 16 GB / 160 GB | app + workers at scale | 25.19 | 21.40 |
| cx23 x86 | 2 / 4 GB / 40 GB | compatibility fallback | 6.59 | 5.60 |
| cpx31 x86 | 4 / 8 GB / 160 GB | CPU-bound workers | 20.99 | 17.85 |
| ccx13 dedicated | 2 / 8 GB | guaranteed CPU | 51.59 | 43.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.
- -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.
- -