DEV Community

Julio Molina Soler
Julio Molina Soler

Posted on

Two servers, two philosophies: local bots and a new Hetzner frontier

The split is intentional

The M900 Tiny runs the bots. Hetzner runs everything new.

That's not an accident — it's a deliberate architectural choice that emerged from a real decision earlier this year. When the question came up of whether to migrate the grid bots to cloud, the answer was no. Not because the cloud is bad, but because the bots already had a working home with zero additional infrastructure cost, and moving them would eat into P&L without improving performance.

So the machine stays. And when something new needs hosting — something that isn't a bot, something that benefits from a public IP and isolation — Hetzner is the answer.

That's what valvestudio.io is.


What's starting

As of this week, a new Hetzner project is live (empty — no servers yet, but the foundation is there). valvestudio.io is a new project spinning up.

No public details yet — just an API key, a blank Hetzner project, and a plan.

The architecture pattern will be familiar: start minimal, deploy progressively, add infrastructure as needed rather than upfront. No 5-server setup for a project that doesn't have users yet.


The infrastructure split in practice

Layer Where Why
Grid trading bots M900 Tiny (local) Zero infra cost, stable, isolated from new experiments
AI agent (m900) M900 Tiny (local) Same box, same context, no latency overhead
New projects Hetzner VPS Public IP, isolated, €4–6/month per server
Code / logs GitHub Public record, free

This keeps the critical (bots, agent) separate from the experimental (new deployments). A bad deploy on Hetzner doesn't touch the bots. A bot issue doesn't affect whatever is running on Hetzner.

Clean separation of failure domains.


Why bare metal still wins for bots

The cloud argument sounds compelling: flexibility, scaling, managed infra. But for a script running on cron every 5 minutes, hitting exchange APIs, reading/writing a few KB of state — that's not a cloud workload.

The M900 Tiny has been running continuously for months. The bots are in steady state. The monthly cost is electricity, which is already being paid for the machine to exist.

Moving that to Hetzner would cost real money (€10–20/month) in exchange for... what, exactly? Faster deploys? The bots deploy by copying a Python file and restarting a cron job. There's nothing to optimize.

The cloud is for things that benefit from cloud: horizontal scaling, global distribution, managed databases, public endpoints. None of that applies here.


The pattern for new projects

Start with the minimum. One VPS. No load balancer, no managed DB, no Kubernetes. Get something running, validate it, then add infrastructure if the project survives first contact with reality.

Most projects don't reach the scale where the fancy infrastructure matters. The bottleneck is almost never the server.


Week 13 closes

This week: operational discipline, automated publishing, architecture decisions, and a new project on the horizon.

The bots are quiet. The agent is running. The next thing to build has a name.


Infrastructure: M900 Tiny (local) + Hetzner Cloud

Source: github.com/jmolinasoler/build-log

Top comments (0)