# Toft > Toft is a self-hosted platform for an organization's own software: web apps, APIs, dashboards, reports and scheduled jobs. Give it a git repository or a folder and it detects the framework, builds the app, runs it, and serves it behind the organization's sign-in. These are its three guides, for the newest published version. Every link below is the Markdown copy of one page; adding `.md` to any page's address gives the same thing. Links inside the pages point at other pages' Markdown copies. Addresses are relative to this site's root. Each guide is also one file, and the whole site is one file: - [User guide](/toft-docs/latest/llms-user.txt): For people who deploy, run and share apps. - [Admin guide](/toft-docs/latest/llms-admin.txt): For whoever installs Toft and keeps it running. - [CLI & SDK guide](/toft-docs/latest/llms-cli.txt): The toft command, and the app SDKs for Python, Node, R and Go. - [Everything](/toft-docs/latest/llms-full.txt): all three guides, in reading order. To deploy or manage apps from an agent, install the `toft` CLI and its two agent skills; see [Skills for coding agents](/toft-docs/latest/cli/cli/agents.md). ## User guide: Get started - [What Toft is](/toft-docs/latest/user/start/what-toft-is.md): Give Toft a repository and it builds, runs and serves your app at a URL. No Dockerfile, no web server config. - [Signing in](/toft-docs/latest/user/start/signing-in.md): How you get an account, what your role lets you do, and what to do when you cannot get in. - [Deploy your first app](/toft-docs/latest/user/start/first-app.md): From a repository URL to a running app you can share, in about ten minutes. - [Finding your way around](/toft-docs/latest/user/start/finding-your-way.md): The app list, an app's tabs, your own pages, and the command palette. ## User guide: Deploying - [From a git repository](/toft-docs/latest/user/deploy/from-git.md): Point an app at a repository, a branch and optionally one folder of it; Toft clones and builds it. - [From your machine](/toft-docs/latest/user/deploy/from-your-machine.md): Deploy your working tree with toft deploy — uncommitted changes included, no git push needed. - [From RStudio](/toft-docs/latest/user/deploy/from-rstudio.md): Publish from RStudio or Posit Workbench with the Publish button and rsconnect, as you would to Posit Connect. - [From an archive](/toft-docs/latest/user/deploy/from-an-archive.md): Upload a .zip or .tar.gz to create an app, or to ship a new version of one. - [From the gallery](/toft-docs/latest/user/deploy/from-the-gallery.md): Deploy a working example in any supported framework, then make it your own. - [Watching a deploy](/toft-docs/latest/user/deploy/watching.md): The deploy console, its three phases, the build log, and what each failure reason tells you to do. - [Deploying on every push](/toft-docs/latest/user/deploy/auto-deploy.md): Turn on auto-deploy and Toft rebuilds your app when its branch gets a new commit. - [Deployments and rollback](/toft-docs/latest/user/deploy/releases.md): Every successful deploy is kept as a deployment. Roll back in seconds, download any deployment, and control how many are kept. ## User guide: Building - [How Toft reads your repository](/toft-docs/latest/user/build/how-detection-works.md): The ordered checks that pick your app's framework, and what to do when the pick is wrong. - [Node and Next.js](/toft-docs/latest/user/build/node.md): How Node and Next.js apps are detected, built and started. - [Python](/toft-docs/latest/user/build/python.md): Flask, FastAPI, Streamlit, marimo and plain Python — how each is detected and started. - [Go](/toft-docs/latest/user/build/go.md): How a Go app is detected, built and versioned. - [R](/toft-docs/latest/user/build/r.md): Shiny, plumber and R documents — what Toft detects, and why you need renv.lock. - [Static sites](/toft-docs/latest/user/build/static.md): Serve a folder of HTML, or the committed output of a front-end build. - [Notebooks and documents](/toft-docs/latest/user/build/notebooks.md): Publish a Jupyter notebook, Quarto or R Markdown document as a page. - [Scheduled re-renders and report delivery](/toft-docs/latest/user/build/reports.md): Refresh a published document on a schedule, and email a link to the people who read it. - [Language versions](/toft-docs/latest/user/build/versions.md): Pin the Python, Node, R or Go version your app builds and runs on. - [Base paths](/toft-docs/latest/user/build/base-paths.md): Your app is served under /apps/. Here's what that means for links, redirects and cookies. - [toft.toml](/toft-docs/latest/user/build/toft-toml.md): The optional manifest at your repository root, and every table it can carry. ## User guide: Running - [The app page](/toft-docs/latest/user/run/the-app-page.md): The tabs on an app's page, who sees each one, and where to find your app's address. - [Status and sleeping](/toft-docs/latest/user/run/status.md): What each app status means, how sleeping and waking work, and why an app crashes. - [Logs](/toft-docs/latest/user/run/logs.md): The run log, the build log, and the platform's own lines about your app. - [Events](/toft-docs/latest/user/run/events.md): The failures Toft recorded for your app, and how to filter them. - [Settings and environment variables](/toft-docs/latest/user/run/settings.md): Name, slug, source, runtime and environment variables on an app's Settings tab. - [Credentials an administrator attaches](/toft-docs/latest/user/run/credentials.md): Shared secrets an administrator gives your app without you ever holding them. - [Usage and resources](/toft-docs/latest/user/run/usage.md): Who opens your app, how often, and what it consumes. - [Dependencies and policy](/toft-docs/latest/user/run/dependencies.md): How Toft checks your app's packages against advisories, and what to do when a deploy is refused. - [When an app is locked](/toft-docs/latest/user/run/locked.md): What a lock blocks, why you can't lift it, and how to get your app back. - [Quiet apps](/toft-docs/latest/user/run/quiet.md): How long since anybody used your app, where Toft shows it, and what it does not mean. ## User guide: Sharing - [Who can see your app](/toft-docs/latest/user/share/visibility.md): The three visibilities on the Access tab, and what can keep an app from being public. - [Sharing with people and groups](/toft-docs/latest/user/share/people.md): Grant a person or group List only, Viewer or Editor on the Access tab. - [Asking for access to an app](/toft-docs/latest/user/share/requesting-access.md): Request access to an app you can see but not open, and answer requests for your own apps. - [Ownership and transfer](/toft-docs/latest/user/share/ownership.md): Who owns an app, how to transfer it, and why production apps should belong to a group. - [Tags](/toft-docs/latest/user/share/tags.md): Label your app with your install's tags so people can browse and filter the estate. - [What your app learns about a viewer](/toft-docs/latest/user/share/viewer.md): The signed role on every request, asking who the viewer is, and the rules for using either. ## User guide: Automating - [Schedule work with jobs](/toft-docs/latest/user/automation/jobs.md): Declare jobs in toft.toml, put them on a schedule, run them from Toft, and start them from your web app. - [Starting jobs from your app](/toft-docs/latest/user/automation/from-your-app.md): Start one of your app's own jobs from a request, answer at once, and let the person follow it on a status page. ## User guide: Data and files - [App data](/toft-docs/latest/user/data/app-data.md): One small JSON document every app can read and write, kept across restarts, redeploys and rollbacks. - [App storage](/toft-docs/latest/user/data/app-storage.md): Durable volumes and object stores an administrator attaches to your app, which one to ask for, and how your code finds them. - [Browsing storage](/toft-docs/latest/user/data/browsing-a-store.md): List, upload, download and delete files in storage you hold a grant on, from Toft or the CLI. - [Sending messages and files](/toft-docs/latest/user/data/integrations.md): Send messages and files from your app through integrations an administrator attaches, without holding a credential. ## User guide: The command line - [Installing toft](/toft-docs/latest/user/cli/installing.md): Install the command-line client and sign it in to your Toft install. - [Deploying with toft](/toft-docs/latest/user/cli/deploying.md): The everyday commands, and the exit codes a pipeline relies on. - [API keys](/toft-docs/latest/user/cli/api-keys.md): Personal and deploy keys — what each one is, and which to use. - [The app SDK](/toft-docs/latest/user/cli/sdk.md): The library your app uses to talk to Toft — who is calling, its data, jobs and messages. ## User guide: Your account - [Your account](/toft-docs/latest/user/account/your-account.md): Your role, everything you can reach, your API keys and your sign-ins. - [Becoming a publisher](/toft-docs/latest/user/account/becoming-a-publisher.md): Request the role that lets you create and deploy apps. ## User guide: Reference - [Troubleshooting](/toft-docs/latest/user/reference/troubleshooting.md): Common failures, what they mean, and where to look first. - [Limits and caps](/toft-docs/latest/user/reference/limits.md): Fixed limits, the ones your administrator sets, and features that may be absent. - [Glossary](/toft-docs/latest/user/reference/glossary.md): The terms this guide uses, in one place. ## Admin guide: Get started - [What you are running](/toft-docs/latest/admin/start/architecture.md): One Go binary, Postgres and a filesystem — the pieces, the listeners and the origin boundary. - [Ways to install](/toft-docs/latest/admin/start/install-options.md): One box with Docker Compose, or a cluster with the Helm chart — same image behind both. - [First run](/toft-docs/latest/admin/start/first-run.md): Getting in the first time, and the order to configure things in. - [Upgrading](/toft-docs/latest/admin/start/upgrading.md): Pin a new image tag and restart — migrations run at startup and only go forward. ## Admin guide: Configuration - [Configuration and settings](/toft-docs/latest/admin/config/configuration-vs-settings.md): Environment variables versus audited settings, and the test that decides which a knob is. - [Listeners, origins and proxies](/toft-docs/latest/admin/config/listeners-and-origins.md): Three listeners, two origins, trusted proxies and cookies. - [The operating dials](/toft-docs/latest/admin/config/operating-dials.md): Seven numbers with an environment floor and a live setting override. - [Retention](/toft-docs/latest/admin/config/retention.md): How long Toft keeps logs, events, runs and deployments, and what it never prunes. ## Admin guide: Identity - [Sign-in providers](/toft-docs/latest/admin/identity/providers.md): Add OIDC and GitHub providers on Admin → Authentication, and control who gets an account. - [The built-in administrator](/toft-docs/latest/admin/identity/local-administrator.md): The local admin account every install has, switching password sign-in off, and recovery. - [Accounts that wait to be activated](/toft-docs/latest/admin/identity/activation.md): Create accounts on first sign-in but admit nobody until an administrator activates them. - [Sessions](/toft-docs/latest/admin/identity/sessions.md): Idle and absolute session lifetimes, sign-out everywhere, and where sign-in lands. - [Users and roles](/toft-docs/latest/admin/identity/users-and-roles.md): The three system roles, the People pages, locking, deleting and publisher requests. - [Groups](/toft-docs/latest/admin/identity/groups.md): Local sets of people that can own apps and hold grants. - [Directory groups](/toft-docs/latest/admin/identity/directory-groups.md): Let a provider's group claim maintain a local group's membership. - [Permitted login groups](/toft-docs/latest/admin/identity/permitted-groups.md): Restrict an OIDC provider to members of named directory groups — and the lockout risk that comes with it. - [The directory feed (SCIM)](/toft-docs/latest/admin/identity/directory-feed.md): Let your IdP lock accounts and push group membership over SCIM 2.0 — the supported subset. - [Offboarding and dormancy](/toft-docs/latest/admin/identity/offboarding.md): Remove someone's access cleanly, and let the dormancy sweep catch the accounts nobody removed. ## Admin guide: Apps and the estate - [Execution modes](/toft-docs/latest/admin/apps/execution-modes.md): Shared and isolated execution — what each gives you, per-app OS accounts, and the risk shared mode accepts. - [Ownership, grants and the three rungs](/toft-docs/latest/admin/apps/ownership-and-grants.md): Who owns an app, the list, viewer and editor rungs, and the rules authorization rests on. - [Listing and access requests](/toft-docs/latest/admin/apps/listing.md): Whether signed-in people can discover apps they cannot open, the list rung, and access requests. - [Locking and retirement](/toft-docs/latest/admin/apps/locking.md): The administrator's stop — what a lock blocks, who can set one, and using it to retire an app. - [Quiet apps](/toft-docs/latest/admin/apps/quiet.md): Finding apps nobody uses — reported as a fact, never acted on automatically. - [Tags](/toft-docs/latest/admin/apps/tags.md): The taxonomy apps are filed under — administrators define it, owners choose from it. - [Deployments, rollback and retention](/toft-docs/latest/admin/apps/releases.md): What a build leaves behind, how rollback works, and how many deployments each app keeps. - [The artifact store](/toft-docs/latest/admin/apps/artifact-store.md): Where built releases are published so they outlive the machine — S3, Azure Blob or a local directory. - [The estate views](/toft-docs/latest/admin/apps/estate-views.md): The admin pages that answer questions about every app at once. - [What an app can reach](/toft-docs/latest/admin/apps/reach.md): Everything an app has been given, the estate-wide view of it, and what the page cannot see. ## Admin guide: Builds - [What a deploy does](/toft-docs/latest/admin/build/pipeline.md): The three phases of a deploy, what each can refuse, building from a folder, and what a failure leaves alone. - [The build queue and its limits](/toft-docs/latest/admin/build/queue-and-limits.md): How many builds run at once, the timeouts, and what to check when the queue stops moving. - [The build cache](/toft-docs/latest/admin/build/cache.md): The shared package caches under CACHE_DIR — how big they are and how to empty them. - [Language versions and toolchains](/toft-docs/latest/admin/build/languages.md): Which interpreters an install offers, how an app picks one, and how to retire a version. - [Runner images](/toft-docs/latest/admin/build/runner-images.md): The per-language container images isolated mode runs workloads in, and the version sets they declare. ## Admin guide: Security - [How apps are isolated](/toft-docs/latest/admin/security/isolation.md): Separate origins, the environment an app receives, what shared mode does not isolate. - [Anonymous access](/toft-docs/latest/admin/security/anonymous.md): One switch that decides whether any app on this install can be opened without signing in. - [Reachability](/toft-docs/latest/admin/security/reachability.md): How Toft confirms public apps answer from outside, and withdraws anonymous access when they do not. - [Trusted app sources](/toft-docs/latest/admin/security/sources.md): Restrict which git hosts and paths apps may be deployed from. - [Connected git hosts](/toft-docs/latest/admin/security/git-connections.md): Hold your git host's clone credential once, centrally, so developers never handle a token. - [Dependency policy](/toft-docs/latest/admin/security/dependencies.md): Check every app's declared packages against an advisory feed, refuse risky deploys, and lock on malware. - [At-rest encryption](/toft-docs/latest/admin/security/encryption.md): The key ring, rotating keys with toft rotate-key, and the KMS backends. - [Machine credentials](/toft-docs/latest/admin/security/keys.md): Personal and deploy keys, the app token, what each may do, and what no key can do. - [The audit log](/toft-docs/latest/admin/security/audit.md): What is recorded, what never is, and how to read it during an incident. - [Scan targets and security.txt](/toft-docs/latest/admin/security/scan-targets.md): Give a security team the list of app addresses to scan, and publish where to report findings. - [What this install tells an assessor](/toft-docs/latest/admin/security/compliance.md): The NIST SP 800-171r3 control document and audit report — what each covers and who can read them. ## Admin guide: Capabilities - [What is optional](/toft-docs/latest/admin/capabilities/optional.md): Unconfigured capabilities are absent, not disabled — the rule, the one exception, and the list. - [App storage](/toft-docs/latest/admin/capabilities/storage.md): What a storage resource is, the two kinds, where the bytes can live, and how apps and people reach one. - [The credentials broker](/toft-docs/latest/admin/capabilities/credentials.md): Hold a secret centrally and attach it to apps — the app gets the keys, nobody gets the values. - [Integrations](/toft-docs/latest/admin/capabilities/integrations.md): Let apps send messages and files outward using an identity the install holds, never one the app holds. - [Email and notifications](/toft-docs/latest/admin/capabilities/email.md): Configure the mail relay, who gets notified, and where links point — a dead relay never fails anything. - [Announcements and messages](/toft-docs/latest/admin/capabilities/announcements.md): The banner, announcement email, the messages people see when turned away, and the knowledge base. - [Publishing from RStudio](/toft-docs/latest/admin/capabilities/rstudio-publishing.md): The Posit Connect publishing API — what rsconnect can do here, what it depends on, and how to turn it off. - [The gallery](/toft-docs/latest/admin/capabilities/gallery.md): Extensions and examples from the Toft gallery repository, who can deploy them, and how to mirror the catalog. - [Documentation](/toft-docs/latest/admin/capabilities/documentation.md): How an install links to the guides for its own version, and how to mirror or turn off those links. - [Telemetry](/toft-docs/latest/admin/capabilities/telemetry.md): Export metrics and traces to your OpenTelemetry collector, and expose a Prometheus scrape endpoint. ## Admin guide: Operating - [System checks](/toft-docs/latest/admin/operate/checks.md): Admin → Checks — what this install can and cannot do, read live, with a link to the fix. - [Health, processes and the queue](/toft-docs/latest/admin/operate/health-and-processes.md): What is running now, how crashes and restart loops are judged, and where the platform explains a failed start. - [Usage, consumption and cost](/toft-docs/latest/admin/operate/usage.md): Admin → Usage — which apps are used, what they consume, and what the numbers do not say. - [Automation across the estate](/toft-docs/latest/admin/operate/automation.md): Jobs on every app — where runs execute, their limits, schedules, alerts, caps and troubleshooting. - [Licensing](/toft-docs/latest/admin/operate/licensing.md): What a license key is, what it gates, and why a lapse never takes a running app down. - [The platform's own subcommands](/toft-docs/latest/admin/operate/command-line.md): What the toft server binary does besides serving — recovery, offline imports, key rotation and route listings. - [Troubleshooting](/toft-docs/latest/admin/operate/troubleshooting.md): The failures an administrator fixes — sign-in, access, deploys, builds, storage, startup and keys. ## Admin guide: Reference - [Settings reference](/toft-docs/latest/admin/reference/settings.md): All 97 install-wide settings by API name, grouped by the admin page that renders them. - [Environment reference](/toft-docs/latest/admin/reference/environment.md): Every environment variable Toft reads at startup, with its default, grouped by purpose. - [The admin pages](/toft-docs/latest/admin/reference/admin-pages.md): Every page under Admin, its address, and the question it answers. - [Checks reference](/toft-docs/latest/admin/reference/checks-reference.md): All 27 system checks in report order, with their category and what moves each one off pass. ## CLI & SDK guide: The CLI - [Installing toft](/toft-docs/latest/cli/cli/installing.md): Install the toft command-line client on Linux, macOS or Windows, and keep it current. - [Signing in](/toft-docs/latest/cli/cli/signing-in.md): Sign toft in to an install, the four kinds of key, and how credentials are stored. - [Deploying](/toft-docs/latest/cli/cli/deploying.md): Create an app, push your working tree to it, and read why a deploy failed. - [Command reference](/toft-docs/latest/cli/cli/commands.md): Every toft command and flag. Run toft --help for the same text in your terminal. - [Skills for coding agents](/toft-docs/latest/cli/cli/agents.md): Two skills that let a coding agent deploy and write Toft apps on its own — what they cover and how to install them. - [Exit codes](/toft-docs/latest/cli/cli/exit-codes.md): What each toft exit code means, and which ones are worth retrying. - [CI and automation](/toft-docs/latest/cli/cli/ci.md): Run toft unattended — credentials, a deploy pipeline, and parsing --json output. ## CLI & SDK guide: The SDK - [What the SDK is](/toft-docs/latest/cli/sdk/what-it-is.md): The app SDK for Python, Node, Go and R — how your code calls the platform back. - [Vendoring it](/toft-docs/latest/cli/sdk/vendoring.md): Put the install's own SDK on your disk with toft sdk vendor, for local builds, tests and your editor. - [The app itself](/toft-docs/latest/cli/sdk/app.md): Read the app's id, slug, mode and mount path, and ask what an administrator attached. - [App data](/toft-docs/latest/cli/sdk/data.md): One JSON document per app, up to 256 KiB, that survives restarts, redeploys and rollbacks. - [Files and scratch space](/toft-docs/latest/cli/sdk/files.md): Ephemeral scratch for work in progress, and durable storage an administrator attaches to your app. - [Notifications](/toft-docs/latest/cli/sdk/notify.md): Send Slack messages, email and files as the app, through integrations an administrator attached. - [Access tokens](/toft-docs/latest/cli/sdk/access-tokens.md): Read and write a SharePoint, OneDrive or Google Drive folder with the provider's own SDK, using a short-lived token Toft hands your app. - [Jobs](/toft-docs/latest/cli/sdk/jobs.md): Declare jobs in toft.toml, start them from your app, answer the request with a status page, and write the code that runs inside one. - [Who is asking](/toft-docs/latest/cli/sdk/viewer.md): caller, who and viewer — what a request may do, who sent it, and acting on their behalf. - [When the platform says no](/toft-docs/latest/cli/sdk/errors.md): Reading a refusal in each SDK — the code to branch on, whether to retry, and the hint to log. ## CLI & SDK guide: Reference - [Environment variables](/toft-docs/latest/cli/reference/environment.md): The variables Toft sets for your app and its jobs, and what never reaches an app. - [The six roles](/toft-docs/latest/cli/reference/roles.md): The role words a request carries, what each means, and how your app verifies them. - [Language notes](/toft-docs/latest/cli/reference/languages.md): The SDK in Python, Node, Go and R — how each spells the same calls, and what R lacks.