
dev-dock-manager-rust
One Docker dev box per user, with a web terminal, a noVNC desktop and optional GPU. The Django version, rewritten in Rust, partly to find out whether I could.
Flagship · case study
Reach every device from your browser.
One outbound reverse SSH tunnel per device gives you a browser terminal, files, remote desktop, a remote browser and the LAN behind it. No port forwarding, no VPN, no public IP.

The machines I needed to reach kept ending up somewhere unreachable: a server behind NAT, a Raspberry Pi at home, an office PC behind a firewall, a router that only lets HTTPS out.
Port forwarding needs a router you control, a VPN needs software on every laptop, and both need someone to maintain them. Every one of those devices could already reach the internet, judging by how often they download updates. So Telepy turns the connection around: the device dials out, and you work on it from the browser.
Your browser
Telepy server
Device
ssh -R
The device runs an ordinary ssh -R to the gateway built into Telepy. Nothing is opened on the server, and both ends check each other's host key.




In October 2026 the Django backend was rewritten as one Rust process behind the same API. Measured side by side on the same machine and the same device, right after the switch:
| Measure | Django | Rust | Change |
|---|---|---|---|
| Device connect → online on the dashboard | 2.90 s | 0.16 s | 18.1× |
| Device SSH authentication | 54 ms | 12 ms | 4.5× |
| Dashboard API, 50 concurrent | 561 req/s | 4,726 req/s | 8.4× |
| Web terminal throughput | 35.1 MB/s | 96.9 MB/s | 2.8× |
| Backend cold start | 14.2 s | 0.7 s | 20.1× |
| Memory at idle | 329 MiB | 20 MiB | 16.5× |
| Processes per connected device | 2 sshd + sampler | 0 (one Tokio task) | — |
Telepy on GitHub
Self-hosted with Docker Compose. AGPL-3.0.

One Docker dev box per user, with a web terminal, a noVNC desktop and optional GPU. The Django version, rewritten in Rust, partly to find out whether I could.

Nine hands-on chapters, from hashing to a peer-to-peer network. The same Rust code powers interactive WebAssembly demonstrations in your browser.

The original Django dev-box manager: isolated Docker environments for several users on one machine. The Rust version replaced it, but this one carried the load first.