# GenHTTP Lambda (community edition) > A self-hosted, open source platform that keeps the apps a coding agent builds online on your own server. Agents such as Claude Code, Codex, Cursor or GitHub Copilot connect over the Model Context Protocol (MCP) once; every app they build is online seconds later at an address of its own, with a database, versions and visitor stats. It runs as one Docker container (`genhttp/lambda`) with one volume and no database server. MIT license. Source and guide: https://github.com/MDA2AV/GenHTTP.Lambda Docker image: https://hub.docker.com/r/genhttp/lambda Reference (routes, API, configuration): https://github.com/MDA2AV/GenHTTP.Lambda/blob/main/docs/reference.md A hosted installation of the same code: https://genhttp.dev/ ## Install docker run -d -p 8080:8080 -v lambda-data:/data -e LAMBDA_ADMIN_TOKEN=a-long-password genhttp/lambda Then open http://localhost:8080. Images for amd64 and arm64. Settings: `LAMBDA_PUBLIC_URL` (where people and agents reach the server; app addresses are made from it), `LAMBDA_ADMIN_TOKEN` (password of the panel at /admin; without one the panel is off), `LAMBDA_HOSTING_URL` (a domain for the apps, each app then answers at a subdomain; needs a wildcard DNS record and certificate). HTTPS: put it behind an existing reverse proxy (Caddy, nginx, Traefik) with one entry, or let it serve TLS itself. ## Connect an agent - Claude Code: `claude mcp add --transport http genhttp http://localhost:8080/mcp` - Cursor: `~/.cursor/mcp.json` with `{ "mcpServers": { "genhttp": { "url": "http://localhost:8080/mcp" } } }` - VS Code (Copilot): `.vscode/mcp.json` with `{ "servers": { "genhttp": { "type": "http", "url": "http://localhost:8080/mcp" } } }` - Claude on the web or desktop: Settings, Connectors, Add custom connector (needs a public HTTPS address) - Others (Codex, Windsurf, Zed): add a remote MCP server with the address `/mcp` - Without MCP: REST API described at `/api/v1/scalar/` (OpenAPI), and every app is a git repository Then ask the agent for an app. It answers with the app's address and its editor link; the editor link is the key to the app and cannot be recovered. ## What every app gets - An address: below `/lambda/{key}/` on the server, a subdomain with `LAMBDA_HOSTING_URL`, or a domain of its own once made premium in the panel - MCP tools for the agent: create_lambda, write_code, change_code, check_code, deploy, read_lambda, read_logs, create_feature, merge_feature, enable_data, read_database, upload_file, set_secret, list_secrets, analytics and more - Drafts: a change is tried on a copy of the app and its data with a link of its own, then put online - Versions: every change says what it did and why; roll back to any earlier version - Data that outlives versions: a SQLite database (Evolve migrations, Entity Framework Core), a folder for files, sealed secrets the agent only knows by name - Git: clone, push a commit to save a version, `git push -o deploy` to put it online, push a branch to start a draft - Visitor analytics: opt-in, counted on the server without cookies or scripts; visitors, page views, pages, referrers, countries, devices, browsers; crawlers counted apart by kind and verified by published addresses where available - Logs per app - Websockets and server-sent events - Export as a plain .NET project with a Dockerfile - A simple editor view for people who don't code, in 13 languages - An admin panel with every app, traffic, errors, limits, blocks and the log - Showcase and published source - Optional build agent: a text box on the server's front page that turns a sentence into an app, using your Claude subscription, with every build in a short-lived container that can only reach the server and Anthropic Under the hood every app is a small C# program on the GenHTTP web server (https://genhttp.org), compiled and run by the server in seconds. Nobody has to write one. ## Good to know - Apps run inside the server's process: code is checked before it runs, but this is no sandbox. Run code you would run yourself. - By path, apps share the platform's origin and could read what the editor and the panel keep in the browser. For apps of people you don't know, set `LAMBDA_HOSTING_URL`. - A new app is free: offline after 30 days without visits or changes, removed 90 days later. Premium apps are kept; durations are configurable under Limits. - Backups: the whole volume at `/data`, including `secrets.key`. - Updates: `docker pull genhttp/lambda` and restart; the database migrates on start.