# spredr > spredr is an orchestrator for your backends: it takes your code, builds it, runs it on machines from different providers and keeps it up even when one of them falls. You publish; spredr decides where it runs. The whole documentation in one file: https://spredr.cloud/llms-full.txt ## Docs - [What spredr is](https://spredr.cloud/docs): spredr is an orchestrator for your backends: it takes your code, builds it, runs it on machines from different providers and keeps it up even when one of them falls. You publish; spredr decides where it runs. - [Your first deploy](https://spredr.cloud/docs/start): From a GitHub repo to a live address. Before the terminal you need two things: a spredr account and the spredr app on your GitHub. After that, all of it happens in the terminal. - [How your service runs](https://spredr.cloud/docs/architecture): You publish your code; spredr builds it, runs it and puts it in reach of your customers with https. This is what happens on the way and what it guarantees you. - [Where it runs](https://spredr.cloud/docs/providers): Your service runs in the region you choose, on machines from more than one provider. You don't depend on a single one doing well. - [If a machine falls](https://spredr.cloud/docs/rescue): You don't have to do anything. spredr notices, puts your service on another machine in the same region and it answers again in about 4 minutes. - [A deploy](https://spredr.cloud/docs/deploys): Every push to your service’s branch is a new release. Your customers move to it only when it is healthy: they never see a broken deploy. - [Security](https://spredr.cloud/docs/security): What spredr protects for you, with nothing for you to set up. - [Configuring a service](https://spredr.cloud/docs/settings): How it is built and how it runs: the branch, the folder, the Dockerfile, the start command, the port, the health path, the memory and the region. With no flags, spredr settings shows what it has. - [Persistent volumes](https://spredr.cloud/docs/volumes): A volume keeps files across deploys: an SQLite database, what your users upload, a cache. It is encrypted on its machine and backed up every 15 minutes. - [Variables and secrets](https://spredr.cloud/docs/variables): Your keys live encrypted in spredr, never in the repo. In the terminal you only see their names; changes apply from the next deploy. - [Your own domains](https://spredr.cloud/docs/domains): Every service answers on its onspredr.com address. To use your domain, you prove it's yours with a TXT record and point it at spredr; Cloudflare adds the https. - [Watching](https://spredr.cloud/docs/watch): Everything that happens with your services, from the terminal: their state, logs, memory and CPU, and what puts them at risk, with its fix. - [Releases and going back](https://spredr.cloud/docs/releases): Every deploy is a release: v1, v2, v3. Going back to an earlier one uses its image as it is, without building again, so it takes seconds. - [Your agents](https://spredr.cloud/docs/your-agents): An agent is your code with the spredr SDK, with its own image and deployment: it takes tasks, asks before it acts, remembers and learns. You bring the model and your key; spredr brings the rest. - [Your agent from your backend](https://spredr.cloud/docs/backend): Your backend talks to your agent with the SDK, signing with its own key. spredr delivers what you send and what the agent answers; what you send and how it reads it is your code's business. - [Plans and limits](https://spredr.cloud/docs/plans): You pay one plan for all your services, not a bill for each. Everything in the plan is shared by the services in your account. - [Command line](https://spredr.cloud/docs/cli): Publish, watch and configure your services from the terminal. Tokens and billing live in the panel. With --json, a script or an agent uses it just like you. - [For agents](https://spredr.cloud/docs/agents): An agent or a CI can drive spredr just like you: every command answers in JSON, every error says how to fix it and the exit codes do not change. This page is what an agent needs to know. ## Command line - [spredr link](https://spredr.cloud/docs/cli/link): Ties this folder to a service, so commands here need no name. - [spredr unlink](https://spredr.cloud/docs/cli/unlink): Unties this folder from its service. - [spredr new](https://spredr.cloud/docs/cli/new): Creates a service from a GitHub repo. - [spredr rm](https://spredr.cloud/docs/cli/rm): Deletes a service. It asks you to type its name. - [spredr deploy](https://spredr.cloud/docs/cli/deploy): Deploys the newest commit of the service's branch and follows it until it is live (or fails), with the build as it happens. What was live keeps serving until the new release answers its health path. - [spredr rebuild](https://spredr.cloud/docs/cli/rebuild): Builds the same commit again from scratch and deploys it. - [spredr releases](https://spredr.cloud/docs/cli/releases): A service's releases, newest first. - [spredr rollback](https://spredr.cloud/docs/cli/rollback): Goes back to an earlier release: its image, no rebuild. - [spredr start](https://spredr.cloud/docs/cli/start): Turns a service back on with its last healthy release. - [spredr stop](https://spredr.cloud/docs/cli/stop): Turns a service off. Its releases, variables and domains stay. - [spredr services](https://spredr.cloud/docs/cli/services): Every service, its state and address. - [spredr status](https://spredr.cloud/docs/cli/status): How a service is doing: state, memory, CPU and traffic charts. - [spredr top](https://spredr.cloud/docs/cli/top): Every service live: memory, requests and restarts, every 2 s. - [spredr open](https://spredr.cloud/docs/cli/open): Opens a service's address, or its page in the panel. - [spredr usage](https://spredr.cloud/docs/cli/usage): The last 24 hours, hour by hour: memory, CPU and traffic. - [spredr live](https://spredr.cloud/docs/cli/live): One service live on one screen: memory, requests, latency, errors and its logs. Refreshes every 2 s until q. Keys: p only problems, / filter, space pause, r and l pick a column on a narrow screen, d deploys the latest commit (asks first), q quits. - [spredr logs](https://spredr.cloud/docs/cli/logs): What a service prints (-f to follow). - [spredr build](https://spredr.cloud/docs/cli/build): A release's build log (the latest, or -r vN). - [spredr activity](https://spredr.cloud/docs/cli/activity): What happened on your account: deploys, changes, sign-ins, refusals. - [spredr risks](https://spredr.cloud/docs/cli/risks): What puts your services at risk now, worst first, with the fix. - [spredr settings](https://spredr.cloud/docs/cli/settings): How a service is built and runs: branch, folder, Dockerfile, start command, port, health path, memory, region. - [spredr vars](https://spredr.cloud/docs/cli/vars): Variables: list names, set, unset, or import a .env. Values are encrypted and never shown in a terminal; to read one back, use the panel (each read is logged). Changes apply from the next deploy. - [spredr volume](https://spredr.cloud/docs/cli/volume): Persistent volume: see it, give it or resize it, go back to a backup, or remove it. The same rules as the panel and spredr.json; its key never comes out. - [spredr domains](https://spredr.cloud/docs/cli/domains): Domains: list, add, verify, choose which one answers, remove. A domain answers only after you prove it is yours with a DNS TXT record. Only one address answers at a time: a verified domain of yours, or the service's own name. - [spredr login](https://spredr.cloud/docs/cli/login): Connects this terminal to your account. Opens a page where you check the code, choose what this terminal may do and for how long, and approve it. You never paste a token; it's kept in your system's secret store. Ctrl+C cancels and closes the page. - [spredr logout](https://spredr.cloud/docs/cli/logout): Signs this terminal out: its token is revoked on the server. - [spredr whoami](https://spredr.cloud/docs/cli/whoami): Who this terminal is signed in as, and what it may do. - [spredr version](https://spredr.cloud/docs/cli/version): The version, the system, and which control it talks to. - [spredr doctor](https://spredr.cloud/docs/cli/doctor): Checks everything that can go wrong on this machine, and how to fix it. - [spredr config](https://spredr.cloud/docs/cli/config): Shows or changes settings: api, color, updateCheck. - [spredr completion](https://spredr.cloud/docs/cli/completion): Tab completion for bash, zsh, fish or PowerShell. - [spredr upgrade](https://spredr.cloud/docs/cli/upgrade): Updates spredr to the latest version (checked against its sha256).