# Spawner > Spawner is an open source, self-hosted preview environment manager: a copy of your app for each git branch, on your own server, with its own URLs, database and logs, for teams and their coding agents. These pages describe Spawner 2.2.0, released 10 October 2026. Each page of the documentation is linked here in Markdown; its web page has the same path ending in `/` instead of `.md` (https://spawner.run/docs/install/). Key facts: - License and price: free and open source, Apache-2.0. Self-hosted: you run it on a server of your own; there is no hosted service to sign up for. - Server: one Linux server dedicated to previews, Ubuntu 22.04 or 24.04 or Debian 12, amd64 or arm64; 4 GiB of memory at least, 8 GiB or more advised (memory decides how many environments run at once); 20 GiB of free disk at least; ports 80 and 443; a wildcard DNS record such as `*.preview.example.com`. One command installs it, with Docker if needed: `curl -fsSL https://github.com/Flosk6/Spawner/releases/latest/download/install.sh | sudo bash`. - Projects: any application that runs with Docker Compose. A project adds a `.spawner/` directory to its repository: `spawner.yaml` (its URLs, its seed) and a regular Compose file, checked against a security policy (an allowlist). No Kubernetes, no cloud account. - Environments: one per branch, created from a pushed branch or from a local worktree with its uncommitted changes. Each has its own Docker network, database, logs and HTTPS URLs, routed by Traefik and protected by default. By default, an environment sleeps after 2 hours without activity and expires 72 hours after its last deploy. - Coding agents: the `spawner` CLI (`npm install -g spawner-cli`), with `--json` output and stable exit codes, and its MCP server (`spawner mcp`), whose tools are spawner_up, spawner_status, spawner_logs, spawner_exec, spawner_url, spawner_share, spawner_down, spawner_list and spawner_stats. Claude Code, Codex, Cursor and any MCP client work with it. - No telemetry: the server sends nothing about its use. It asks GitHub for new versions every 6 hours (`SPAWNER_UPDATE_CHECK=false` turns that off), and otherwise reaches only what its work needs: git hosts, image registries, Let's Encrypt and your DNS provider for certificates, GitHub when GitHub login is on. - Limits: one server per installation, for previews only (no cluster, no production); no environment created by itself when a pull request opens (CI calls `spawner up` instead); no private image registries; no single sign-on beyond GitHub login (no OIDC or SAML), and no permissions per project; environments share the server's kernel, isolated as containers are, and their outbound traffic is filtered only for the cloud's metadata and the server's own services. ## Getting started - [Quickstart](https://spawner.run/docs/quickstart.md): From a fresh install to the first preview environment of a project, step by step. - [Installing Spawner](https://spawner.run/docs/install.md): Requirements (a Linux server dedicated to previews, memory, disk, ports, a wildcard DNS record), the one-command installer and its options, DNS providers for the wildcard certificate, upgrades, removal. - [Concepts](https://spawner.run/docs/concepts.md): Projects and their sources; environments, their URLs, jobs, statuses, sleep, lifetime and limits; accounts, roles, tokens, protected previews and the audit trail; supervision. ## Guides - [The .spawner/ directory: spawner.yaml and the compose file](https://spawner.run/docs/manifest.md): The two files of .spawner/: spawner.yaml (project, exposures and their URLs, seed, other repositories) and a regular Docker Compose file, its variables and the rules it must follow; how environments stay cheap (shared image layers, databases for previews, memory limits); logs. - [Preview environments for coding agents](https://spawner.run/docs/agents.md): Setting up Claude Code, Codex, Cursor or any other agent: the CLI and its login or a token of its own, the instructions spawner init adds to CLAUDE.md or AGENTS.md, the MCP server configuration, several agents at once, and what an agent cannot do. - [Previews for pull requests](https://spawner.run/docs/ci.md): A preview environment for each pull request, from GitHub Actions or GitLab CI. - [Examples](https://spawner.run/docs/examples.md): The two example projects, ready to deploy: Node.js with PostgreSQL, and Laravel with Next.js and MySQL. ## Reference - [The Spawner CLI and MCP server](https://spawner.run/docs/cli.md): Installing and logging in, how the project and the environment are chosen, the commands (up, logs, exec, status, capacity, url, share, down...), the JSON output and the exit codes, the MCP server, and the section that tells coding agents how to use Spawner. ## Running a server - [Security](https://spawner.run/docs/security.md): The trust model, the compose policy (an allowlist), isolation between environments, access and roles, protected previews, secrets, updates, what Spawner does not protect, and how to report a vulnerability. - [Operating a Spawner server](https://spawner.run/docs/operations.md): Running a server day to day: where its files are, settings, backups and restores, upgrades, disk space, monitoring, accounts, secrets. - [Troubleshooting](https://spawner.run/docs/troubleshooting.md): What to check when something goes wrong: the installation, a build, a URL, an environment. ## Comparison and questions - [Spawner and the alternatives](https://spawner.run/compare/): Spawner next to Coolify, Dokploy, Preevy, PullPreview, Vercel, Netlify, Render, Railway, Heroku review apps and Kubernetes platforms, criterion by criterion, and when to choose another tool - [Frequently asked questions](https://spawner.run/#faq): short answers to the common questions about Spawner ## Optional - [Configuring a Spawner server](https://spawner.run/docs/configuration.md): Every environment variable of the server and its default: access, application, engine, lifecycle and limits, updates. - [Architecture](https://spawner.run/docs/architecture.md): For contributors: the pieces and the workspace, the API and its routes, the database, the engine (jobs, routing, lifecycle, supervision, updates), the data directory, the dashboard, the CLI, releases. - [Changelog](https://spawner.run/changelog.md): What changed in each release of Spawner, newest first, with the date of each release and its files on GitHub. - [Source code](https://github.com/Flosk6/Spawner): the repository on GitHub, with the examples and the issues - [All the documentation in one file](https://spawner.run/llms-full.txt): every page above and the changelog, in Markdown