Prepared for: Omar
Current production server: Intel Xeon E5-1650 v3 · 128 GB ECC · 2×480 GB datacenter SSD
Recommended next step: Use the E5 as the always-on control plane and Targon as the elastic compute plane before buying another Hetzner server.
Best local compute option if we need one: AMD Ryzen Threadripper 2950X · 128 GB ECC · 2 TB NVMe
Premium local compute option: Intel Xeon W-2295 · 128 GB ECC · 960 GB NVMe
The recently purchased Intel Xeon E5-1650 v3 with 128 GB ECC RAM and 2×480 GB datacenter SSDs is a good fit for the persistent backend and River job system. It is not the ideal machine for every CPU-heavy task, but it does not need to be: its role should be the reliable control plane.
For heavy, bursty, isolated, or memory-intensive work, use Targon’s API-controlled confidential VMs. Targon can provide Cloud Run-like elastic execution while also offering beefier VMs, including approximately 50 GB RAM configurations, root-level VM access, encrypted storage, and hardware-attested isolation depending on the selected environment.
This changes the purchase decision: we should first connect River to Targon and measure the real workload. A second Hetzner server is still useful for predictable, always-on capacity, but it is no longer automatically necessary.
Backend API
↓
River + Postgres on Hetzner E5
↓
Classify the job
├── Lightweight / I/O-bound → E5 worker
├── CPU-heavy / memory-heavy → Targon VM
├── Build / test / repository task → Targon VM
├── High-volume always-on worker → optional Hetzner compute node
└── Persistent service → E5 or persistent Targon deployment
Use the first server for stable, persistent services:
@ditto-assistant/backendRiver jobs often wait on Postgres, external APIs, model providers, webhooks, or scheduled events. Those jobs do not require a large CPU. The E5’s 128 GB ECC RAM and SSD storage make it a sensible durable node.
Avoid allowing large builds, repository analysis, or many CPU-heavy agent jobs to compete directly with Postgres and River on this machine.
Targon is useful here as an API-driven compute backend rather than merely an inference provider. The application can provision a VM, run a workload, collect logs and artifacts, and destroy or suspend the environment through the Targon API.
Good Targon workloads include:
Suggested River queues:
default — lightweight work on the E5llm_io — API- and model-provider-heavy worktargon — jobs dispatched to Targon VMsbuilds — repository builds and testsbench — benchmark and evaluation workloadslong_running — persistent workloads requiring a dedicated environmentmaintenance — operational jobs with controlled concurrencyThe E5 remains the durable coordinator. Targon supplies horsepower only when the workload needs it.
This is the best value if we want a permanently available local worker pool for:
The Threadripper is the best complement to the E5 when the priority is parallel throughput per euro.
The W-2295 is the more interesting option if we want a serious, always-on local compute node with strong per-job responsiveness and many concurrent workers. I would choose the NVMe version, not the SATA version, for agent jobs, builds, Docker layers, repositories, and test artifacts.
It costs more than the Threadripper, but it is the better choice when we value:
| Option | Role | Cores / threads | RAM | Storage | Approx. monthly net |
|---|---|---|---|---|---|
| Existing E5-1650 v3 | Production, Postgres, River | 6 / 12 | 128 GB ECC | 2×480 GB SSD | Already purchased |
| Targon API VM | Elastic, isolated burst compute | Depends on VM | Up to roughly 50 GB+ configurations | VM-dependent | Usage-based |
| Threadripper 2950X | Best-value local worker | 16 / 32 | 128 GB ECC | 2 TB NVMe | €106.70 |
| Xeon W-2295 | Premium local compute node | 18 / 36 | 128 GB ECC | 960 GB NVMe | €152.70 |
The E5-1650 v3 is not too light for River. It is appropriately sized as the durable control-plane server. Targon can provide the extra compute on demand through an API, including beefy confidential VMs that are useful for Code Mode, Ditto Code-style jobs, agents, builds, and benchmarks.
Therefore, the most rational next move is:
E5 for backend + Postgres + River, Targon for elastic heavy execution, and no immediate second Hetzner purchase until usage justifies it.
If we decide we need a permanent local compute pool, the Threadripper 2950X / 128 GB ECC / 2 TB NVMe is the value pick. If we want a premium fast compute node, the Xeon W-2295 / 128 GB ECC / 960 GB NVMe is the more powerful and responsive choice.
Hetzner’s Server Auction changes continuously. Verify the exact listing immediately before purchase: