Skip to guide
Deployment/Get started
Self-hosting reference

Deploy your workspace

Run the startup operating system on infrastructure you control. Start with the local stack, configure your models, then choose a production host.

A complete workspace has two processes

The web app serves the product and accepts work. A separate, long-running worker ingests documents and executes durable jobs. Both use the same PostgreSQL database, storage, credentials, and model configuration.

Web app
The authenticated product. Local port 3000.
Worker
Document ingestion, durable execution, and the Inngest endpoint. Local port 8020.
PostgreSQL + pgvector
Workspace data, jobs, and vector search. Compose exposes it on port 5433.
Storage + processing
S3-compatible objects, document conversion, editing, and PDF rendering. Compose supplies local services.
Public website
A separate app in apps/landing, normally on port 3001. Its account links point to the web app.

Start from the repository

Use Git and Docker with the Compose plugin. For commands outside Docker, use Node.js 20 and pnpm 10.15.1. Run the commands from the repository root; keep .env private.

Terminal
git clone https://github.com/Deodat-Lawson/LaunchStack.git
cd LaunchStack
cp .env.example .env
openssl rand -base64 32

The final command generates one secret. Generate independent values for BETTER_AUTH_SECRET and EMBEDDING_SECRETS_KEY, then place them in .env. Configure chat and embeddings before starting the stack.

Choose your route

Docker is the most complete local path. The production overlay adds a TLS proxy and published app/worker images. Vercel can host the web frontend, but still needs a separately hosted worker and services.

Deployment Guide — Self-Host Launchstack | Launchstack