# IONOS VPS Handover — Oscar Platform Inference Path

**Date:** 2026-07-01
**Operator decision:** self-host inference on operator-owned VPS instead of paid cloud AI or Workers AI.
**Goal:** replace stub Qwen 0.5B (DO-002) with a working sovereign LLM endpoint, no third-party AI.

---

## 1. What we have

- **VPS:** IONOS VPS 2-2-80
- **IP:** 185.249.73.178
- **Location:** UK data centre (low latency for operator)
- **OS:** Ubuntu 22.04
- **Resources:** 2 vCPU, 2 GB RAM, 80 GB NVMe SSD
- **Access method:** root via SSH (password reset in IONOS panel) OR IONOS Remote Console (browser-based KVM)
- **Cost:** already paid (no new spend)

**Workspace constraints:** 2 GB RAM is tight. Qwen 2.5 1.5B Q4_K_M (~1.1 GB resident) is the realistic ceiling. Qwen 3B likely won't fit. Phi-3 Mini definitely won't fit.

---

## 2. The plan (still planning, no code)

When operator confirms path:

1. Get root password (look in IONOS email, reset in panel, or use Remote Console)
2. SSH from sandbox: `ssh root@185.249.73.178`
3. Install Docker + Ollama + Qwen 2.5 1.5B
4. Open port 11434 in IONOS firewall
5. Verify: `curl http://185.249.73.178:11434/api/generate -d '{"model":"qwen2.5:1.5b","prompt":"hi"}'`
6. Wire Oscar client: add inference URL setting pointing at this box
7. Test eucalyptus, BS5837, classify-a-tree end-to-end

**Estimated time:** 30-60 min including model download (~1 GB, depends on link).

---

## 3. Sovereignty position

- Local inference on operator's box in operator's home country
- Only IONOS sees prompts (privacy policy applies, GDPR-covered)
- No Anthropic / OpenAI / Google API involvement
- Aligns with DO-001 (Sovereign SPA Mode) and the broader sovereignty stance
- Different from Workers AI only in hosting location

---

## 4. Free alternatives considered

| Option | Cost | Sovereign | Effort | Verdict |
|---|---|---|---|---|
| IONOS VPS (this) | Already paid | High (UK box) | AI does | **Pick this — already paid, UK latency** |
| Oracle Cloud Always Free | $0 | High | AI does | Backup if IONOS fails |
| Cloudflare Workers AI | $0 quota / paid after | Medium (CF sees) | AI does | New CF token needed |
| RunPod / Vast / Lambda | $5+/mo | Medium | AI does | Not free — skipped |
| Local browser model (1.5B+) | Free | Highest | Browser-side | Mobile doesn't support WebGPU |
| Larger local 0.5B | Free | Highest | Browser-side | Already stub, won't help |

---

## 5. Operator's role

- Find/reset root password in IONOS panel
- Open IONOS Remote Console if SSH fails
- Update billing if needed (none expected — box already paid)
- Optional: add SSH key for cleaner auth long-term

AI does everything else: provisioning, model install, firewall, monitoring, Oscar integration.

---

## 6. Risks / known unknowns

- 2 GB RAM is genuinely tight. Qwen 1.5B Q4_K_M sits at ~1.1 GB resident + ~300 MB for Ollama/Docker overhead. Should work, but no headroom
- IONOS outbound bandwidth on VPS 2-2-80 — need to verify if it's metered or unmetered for the model download
- Operator's local network firewall might block outbound SSH from sandbox (would need SSH tunneling)
- If box dies (IONOS maintenance), inference endpoint goes away until AI detects + reports
- No monitoring/alerting yet — would need to add later (Prometheus, or a simple cron heartbeat)

---

## 7. Status

**Awaiting operator action:** find root password in IONOS email or reset in panel.

**Until then:** no SSH attempt, no provisioning. Plan-only.