sh0

Self-hosted deployment. Single binary. Zero complexity.

A deployment platform in a single Rust binary (~2MB). Git push deployments, automatic SSL, built-in AI chat with 20 MCP tools, database management, browser terminal, and multi-server orchestration.

Rust + Svelte 20 MCP tools 488+ tests

Building sh0

Thales & Claude sh0

Giving sh0 a Brain: AI Gateway with Claude Tool Calling

How we built an AI gateway that lets Claude manage sh0 servers -- with SSE streaming, 10 tool definitions, client-side execution, and a chat UI that feels like talking to a DevOps engineer.

11 min Mar 26, 2026
aiclaudetool-callinggateway +3
Thales & Claude sh0

Day Zero: 10 Rust Crates in 24 Hours

How we scaffolded an entire PaaS platform -- 10 Rust crates, 24 database tables, Docker engine client, API server, build engine, and health checks -- in a single day.

11 min Mar 26, 2026
rustarchitecturepaascargo-workspace +3
Thales & Claude sh0

Writing a Docker Engine Client from Scratch in Rust

Why we wrote a custom Docker Engine API client using hyper and Unix sockets instead of shelling out to the Docker CLI, and the multiplexed stream parsing that made it work.

11 min Mar 26, 2026
rustdockerunix-sockethyper +2
Thales & Claude sh0

Preventing Command Injection in a PaaS

A PaaS runs user-provided commands by design. Here is how we built validate_command() to prevent shell injection in cron jobs, deploy hooks, and Docker exec.

12 min Mar 26, 2026
securitycommand-injectionrustpaas +2
Thales & Claude sh0

AI Sandbox: Giving Claude a Safe Container to Debug Your Apps

We built an AI sandbox that gives Claude root access to an Alpine container with curl, git, node, and python -- so it can actually debug your deployments instead of just guessing.

9 min Mar 26, 2026
aisandboxdockermcp +3
Thales & Claude sh0

Automatic SSL: DNS, ACME, and Custom Certificates

How sh0 handles SSL certificates automatically via Caddy's ACME integration, supports custom certificate uploads with AES-256-GCM encrypted private keys, and configures DNS for self-hosted deployments.

12 min Mar 26, 2026
sslacmednscaddy +3
Thales & Claude sh0

Auth in Rust: Argon2id, JWT, TOTP, and API Keys

Building a complete authentication system in Rust: Argon2id password hashing, HS256 JWT tokens, TOTP 2FA with backup codes, API key generation, and AES-256-GCM encryption.

12 min Mar 26, 2026
authrustargon2idjwt +4
Thales & Claude sh0

Backup Engine: AES-256-GCM, 13 Storage Providers, and FTP Nightmares

Building a backup engine with pluggable storage, AES-256-GCM encryption, 13 storage providers via OpenDAL -- and the IPv6 FTP bug that forced us to write our own client.

9 min Mar 26, 2026
backupencryptionstorageopendal +4
Thales & Claude sh0

Blue-Green Deploys: Building a Zero-Downtime Pipeline in Rust

The 8-step deploy pipeline that powers sh0: clone, analyze, build, deploy, health check, route, swap, and cleanup -- with blue-green container swaps and automatic disk management.

11 min Mar 26, 2026
deploymentblue-greenrustdocker +3
Thales & Claude sh0

Taming Caddy as a Programmatic Reverse Proxy

How we turned Caddy into a fully programmatic reverse proxy managed via its Admin API, with automatic SSL, route syncing, and crash recovery.

10 min Mar 26, 2026
caddyreverse-proxysslrust +2
Thales & Claude sh0

Auto-Detecting 19 Tech Stacks from Source Code

How sh0's build engine detects 19 tech stacks, generates production-grade Dockerfiles with multi-stage builds, and creates optimized build contexts -- all in pure Rust.

11 min Mar 26, 2026
ruststack-detectiondockerfilebuild-engine +2
Thales & Claude sh0

The 16KB Bug: How a Pipe Buffer Froze Our Entire Platform

A 16KB pipe buffer caused Caddy to freeze every 5 minutes. The debugging story of a classic Unix pipe deadlock that took us from confusion to a 5-line fix.

9 min Mar 26, 2026
debuggingcaddyunixpipe-buffer +3