LiteBin | L8Bin
Built for side projects, not SLAs. Your demos, previews, and portfolio apps — actually running, on your own domain, on a VPS you already pay for.
→ l8bin.com for the full picture.
Self-hosted App Manager. Deploy single or multi-service apps from your dashboard, CLI, or GitHub Actions — with volume persistence, custom routing, and automatic HTTPS.
Why LiteBin
Cloud hosting platforms are great until you check the bill for side projects you built months ago. Self-hosted PaaS platforms are built for production workloads — customer-facing apps that need uptime guarantees, multi-tenant isolation, and rollback safety. Your weekend demo doesn't need that overhead.
LiteBin runs on one cheap VPS ($5-10/mo) and sleeps apps when nobody's looking. No per-app fees, no credit card on file, no vendor lock-in. Deploy from your laptop or GitHub Actions — your Docker image runs as-is, behind your own domain, with automatic HTTPS.
It's built for engineers who want their side projects, demos, and portfolio apps actually running — not just committed to a repo or sitting in a local Docker container.
Design Decisions
More rationale in Design Decisions.
Routing Modes
LiteBin has two routing modes, switchable from the dashboard at any time:
Master Proxy (default) — All traffic flows through the master server. Simple setup: one wildcard DNS record. Trade-off: master sees 2x bandwidth (proxies both directions).
Cloudflare DNS — DNS points directly to agent nodes. Each agent handles its own traffic independently. Trade-off: requires a Cloudflare account. The key advantage: agents continue serving traffic even if the master is down.
See Architecture for the full breakdown, and Configuration → DNS Records for the records each mode needs.
Quick Start
# Interactive — asks what to install
curl -fsSL https://l8b.in | bash
# Master server (orchestrator + dashboard + Caddy)
curl -fsSL https://l8b.in | bash -s master
# Agent
curl -fsSL https://l8b.in | bash -s agent
# CLI only
curl -fsSL https://l8b.in | bash -s cli
Run the master on a Linux VPS as root — the installer sets up Docker if it's missing. The guided walkthrough (prompts, DNS, admin account, first deploy) lives at l8bin.com/quickstart.
Deploying Apps
- CLI —
l8b shipbuilds on your machine and streams the image to the server. No registry needed; Dockerfile optional (Railpack auto-detects). (CLI reference) - Dashboard — click Deploy and enter any public-registry image, or upload a
docker-compose.ymlfor multi-service apps. - GitHub — the dashboard's GitHub App writes the workflow + secrets into your repo (github-connect), or wire l8bin-action by hand.
- AI agents — give Cursor or Claude the LiteBin MCP server and let them deploy, verify, and fix end-to-end: l8bin.com/agents.
Idle apps sleep to zero and wake on the first request; any project can be pinned always-on.
Architecture
┌──────────────┐ ┌───────────────┐ ┌────────────────┐
│ Dashboard │ │ Orchestrator │ │ Agent (opt.) │
│ (React) │ │ (Rust) │ │ (Rust) │
│ nginx:alpine│ │ API + Docker │ │ Docker mTLS │
└──────┬───────┘ └──────┬────────┘ └───────┬────────┘
│ │ │
└────────────────────┼──────────────────────┘
│
┌──────┴────────┐
│ Caddy │
│ Reverse Proxy│
│ Auto HTTPS │
└───────────────┘
- Orchestrator — API server, container lifecycle, route management, compose parsing, volume scoping, auth, heartbeat, janitor (Rust, axum)
- Dashboard — React UI for deploying apps, managing nodes, configuring settings, and managing services and volumes
- Caddy — reverse proxy with automatic TLS termination, dynamic routing via admin API, and custom route proxy support (path-based and subdomain alias)
- Agent — runs on remote servers, manages containers locally, handles wake requests autonomously via mTLS
See Architecture for the detailed component breakdown, routing modes, and links to all technical docs.
Multi-Node (Optional)
Mix any servers, any providers — each agent hosts its own set of apps:
# On the master — generates mTLS certs, prints a cert bundle
curl -fsSL https://l8b.in | bash -s certs
# On each agent — prompts for the cert bundle
curl -fsSL https://l8b.in | bash -s agent
Or start from the dashboard — Nodes → Add Node — which walks you through it. Details in Multi-Server Setup.
Documentation
Development
Requires Rust, Docker, and optionally Node.js + pnpm (for the dashboard).
# Build all
cargo build --release
# Check compilation (fast, no binary)
cargo check
# Start full stack
docker compose --profile master up -d --build
On Windows with Docker Desktop, the installer script runs the full stack locally:
iex (irm https://l8b.in/windows.ps1) # add -Clean to tear it down
Caddy generates a self-signed cert for *.localhost — expect a browser warning.
See the Development Guide for build scripts, local testing, Windows development, and cross-compilation.