Deploy containerized apps in seconds, expose local servers to the internet with a single command, and manage your infrastructure from one dashboard — all self-hosted on your own server.
curl -fsSL https://distribute.app/install.sh | sh
Run distribute . from any project. The CLI detects your stack, packages only what matters, and streams it to your server. Pick from existing deployments or name a new one — no config files required.
$ distribute . Connected. 2 app(s) deployed. 1. ● my-api 2. ● storefront 3. + Deploy as new app Select [1-3]: 3 App name [my-project]: backend-v2 Packaging… ✓ 12.4 MB (284 files) Uploading 12.4 MB ... ✓ Deployed → https://backend-v2.distribute.app
Share your dev environment with a client, test webhooks, or demo a prototype without deploying. distribute http 3000 creates a secure public URL in seconds.
# Web app on port 3000 $ distribute http 3000 Tunnel open ───────────────────────────────────── Public URL → https://distribute.app/t/a3f82c1b Forwarding → localhost:3000 Press Ctrl+C to stop GET / → 200 GET /api/users → 200 # PostgreSQL on port 5432 $ distribute tcp 5432 TCP Tunnel → https://distribute.app/tcp/f1c90a22
Each deployed app has a live shell directly in the dashboard. Run migrations, inspect logs, debug processes, or install packages — all from the browser, no SSH needed.
# Click >_ on any app card in the dashboard ✓ Connected to distribute-my-api $ ls app.py requirements.txt data/ $ python manage.py migrate Applying auth.0001_initial... OK Applying auth.0002_alter... OK $ pip install stripe Successfully installed stripe-7.3.0
Paste a URL and Distribute analyzes the site, generates a complete PWA package — manifest, service worker, icons — and bundles it for Android and iOS. No Xcode or Android Studio required.
# Dashboard → PWA Builder # URL: https://myapp.distribute.app Analyzing site… ✓ Framework: Next.js ✓ Manifest generated ✓ Service worker created ✓ 6 icon sizes generated Package ready ────────────────────────────── ↓ Download PWA Package (.zip) ↓ Download Android APK ↓ Download iOS Project (.zip)
Start, stop, restart, and delete apps from the dashboard. Stopping an app removes it from Traefik routing immediately — no dangling containers serving stale responses.
# Dashboard app controls ● my-api LIVE [↺ Restart] [■ Stop] [>_ Terminal] ○ old-backend STOPPED [▶ Start] [✕ Delete] # Admin → Traefik distribute-my-api running ✓ distribute-storefront running ✓ distribute-old-backend exited — [Kill]
Zero-configuration support for the tools you love. Optimized, containerized, and globally accessible by default.
Every app gets a free SSL certificate the moment DNS propagates. Domain uniqueness is enforced — no two apps can ever share the same address.
Blue/green container swap on every deploy. Old container stays live while the new image builds. Your app never drops a request.
Invite collaborators with role-based access. Admins manage infrastructure. Developers deploy without touching the server.
Get started →