a Continentix product · in development

Every destructive action needs a second device.

Valtrix is a control plane for virtual infrastructure — Proxmox nodes and Hetzner projects under one roof. Routine work stays fast. Deleting a VM, rotating provider credentials, or exporting the inventory stops and waits for a cryptographic approval from a device that is not the one you are working on.

Why a second device

A cloud console is a single point of total failure. One stolen session, one compromised laptop, one mistaken command — and the whole fleet is gone, including the backups that lived in the same account. Valtrix assumes the admin device will eventually be compromised and designs around that, instead of hoping it will not.

Stolen session is not enough

An attacker with full access to the control device can list, start and reboot machines. They cannot delete a node, touch provider credentials, or export the inventory — those need a signature from a key that never leaves the guardian device.

Mistakes get a pause

The same gate catches the human version of the problem: the wrong VM id at 2 a.m. The approval screen shows customer, project, node and IP before anything is destroyed.

Deletion is not immediate

Every destructive operation writes a protected backup first, with its own retention. An approved, executed deletion is still reversible for days — not gone the moment the API returns 200.

Three devices, three roles

Separation is physical, not a permission checkbox. Each device holds a different key with a different purpose, and no device can quietly grant itself the rights of another.

Device A — Control

Daily operations

The machine you actually work from: inventory, provisioning, networking, billing, monitoring.

  • Cannot change security policy on its own
  • Cannot register another trusted device
  • Cannot bulk-export data
Device B — Guardian

Approval of critical actions

A separate phone whose signing key is generated inside the secure element and cannot be exported or cloned.

  • Approves or rejects, with full context shown
  • Can freeze the whole platform (incident mode)
  • Never receives customer data or unrelated secrets
Device C — Recovery

Used once, then gone

For the day both other devices are lost. Authorises re-enrolment, then de-authorises itself automatically.

  • No standing rights, no daily presence
  • Recovery itself is a critical, logged event
  • Triggers rotation of every derived key

What happens when you press delete

Two paths through the same engine. The policy decides which one an action takes, and the policy is one central, auditable place — not a condition scattered across handlers.

Routine action — start, stop, reboot

1
Request from Device AAuthenticated session, hardware-bound device key.
2
Policy evaluationNot critical, not in incident mode → allowed.
3
Provisioner executesIdempotent, retried, state-machined.
4
RecordedActor, device, resource, result — hash-chained.

Critical action — delete, credentials, export

1
Request from Device ASame entry point, different verdict.
2
Policy says: guardian requiredAction, actor, resource, nonce and expiry are bound into one message.
3
Guardian decidesDevice B shows the real target and signs — or rejects. The key stays in the secure element.
4
Signature verified, replay refusedNonce is burned; an expired or reused approval is worthless.
5
Protected backup, then executeDestructive work is preceded by a backup that cannot be deleted on schedule.

What it manages

One inventory across your own hardware and rented capacity, with the provider API hidden behind a domain model instead of leaking into business logic.

Proxmox nodesVM lifecycle, storage, snapshots, migration, node placement — through a least-privilege API token, never root.
Hetzner Cloud & RobotServers, volumes, firewalls, load balancers, networks, primary and floating IPs, images, rescue, reverse DNS.
Networking & IPAMIPv4 and IPv6 allocation with explicit state per address, per-tenant segments, firewall policy, DNS.
Storage & backupsVolumes, snapshots, incremental backups, restore drills, and the pre-destroy backup gate.
SchedulerPlacement by real capacity, storage type, affinity and maintenance state — not by free RAM alone.
$
BillingPlans, orders, invoices, usage and suspension tied to the resource lifecycle, with no access to provider credentials.
RustAxumPostgreSQLFlutter guardian appEd25519WebAuthnOpenTelemetryProxmox VEHetzner API

What is guaranteed, and against what

Each line below names the attack or failure it addresses. Nothing here is described as "unbreakable" — that word is a marketing claim, not an engineering one.

1
Tamper-evident auditEvery record carries the hash of the previous one, and the chain head is signed and published outside the platform. Rewriting history inside the database becomes detectable from outside it.
2
Replay-proof approvalsAn approval binds action, actor, resource, nonce and a short expiry. Captured traffic cannot be replayed into a second deletion.
3
Least privilege between servicesBilling has no path to the hypervisor; monitoring cannot change a VM; the web API never holds provider root credentials.
4
Control plane off the data pathCustomer traffic never transits Valtrix, and the machine running Valtrix is not a member of the pool it manages.
5
Incident modeOne switch — manual or triggered by anomaly detection — makes every operation, even a reboot, require guardian approval.
6
Recovery that was rehearsedDevice loss, node loss and control-plane loss each have a written, tested procedure. A backup that was never restored is not counted as a backup.

Build status

Valtrix is in active development and is not accepting customers. This page lists what is actually written and running, not what is planned — the roadmap below is honest about the difference.

1
FoundationRust workspace, configuration, PostgreSQL, migrations, identity, sessions, event bus, hash-chained audit log.
done
2
Security corePolicy engine, critical-action requests, guardian approve/reject, Ed25519 signature verification, HTTP API, end-to-end approval example.
done
3
ProvidersProvider abstraction, Proxmox driver on least-privilege tokens, Hetzner Cloud and Robot drivers, node inventory, scheduler.
in progress
4
VPS lifecycleProvisioning, images, networking, IPAM, storage, snapshots, pre-destroy backup gate.
next
5
Console & billingOperator console, customer console, plans, invoices, payments, suspension.
planned
6
Reliability & hardeningReconciliation, disaster recovery, restore drills, penetration testing, cryptographic review.
planned
Not a hosting offer. Valtrix currently manages its author's own infrastructure. There is no sign-up, no trial, and no public API. When that changes, it will change here first.