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

Web Terminal and File Explorer in a Self-Hosted PaaS

How we built a browser-based terminal (xterm.js + WebSocket + Docker exec) and a Docker Desktop-style file explorer -- features most self-hosted PaaS tools lack.

10 min Mar 26, 2026
terminalxtermwebsocketfile-explorer +3
Thales & Claude sh0

The Deploy Hub: 183 Options, One Page

How we built a Softaculous-style deploy hub with 183 options across 5 categories, 7 deploy form components, and a split-panel UX.

11 min Mar 26, 2026
deployuxdashboardsvelte +3
Thales & Claude sh0

From Flat Lists to Stacks: Redesigning Our Entire UX

We threw away our flat app/database list UI and rebuilt around project-scoped stacks with a dual sidebar, context navigation, and cPanel-style sections.

11 min Mar 26, 2026
uxdashboardsveltearchitecture +2
Thales & Claude sh0

Building a Production Dashboard with Svelte 5 in 48 Hours

How we built sh0's production dashboard -- dark/light themes, 5-language i18n, real-time WebSocket logs, and 7 core pages -- using Svelte 5 runes and TailwindCSS 4 in 48 hours.

10 min Mar 26, 2026
sveltesvelte-5dashboardtailwindcss +3
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
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

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

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

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

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

Multi-Server BYOS: SSH Tunnels, Image Transfer, and Trust On First Use

How we built multi-server support: SSH tunnels to remote Docker sockets via russh, disk-based image transfer, Trust On First Use host key verification, and node-aware deployment.

9 min Mar 26, 2026
multi-serversshbyosdocker +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