# Openstead Documentation - [Openstead Documentation](/): Deploy your applications, connect your data, and keep everything running. - Changelog - [Changelog](/changelog): The latest additions, improvements, and fixes across Openstead. Your weekly look at what’s new. - [Documentation, connected navigation, and clearer errors](/changelog/2026-09-28): A dedicated documentation site, session-aware website navigation, and consistent platform failure pages. - [From repository to running application](/changelog/2026-09-21): Openstead's first week brought managed deployments, databases, Blueprints, developer tools, and monthly service checkout. - Get started - [Get started with Openstead](/getting-started/overview): Understand your workspace, choose the right service, and bring your first application online. - [Deploy your first application](/getting-started/first-deploy): Connect GitHub, review detected settings, and deploy a web application or static site. - [Free instances](/getting-started/free-instances): Understand free web hosting, static sites, MySQL Free, and the limits each includes. - [Frequently asked questions](/getting-started/faq): Answers about servers, GitHub, databases, domains, deployment, and payments. - Services - [Choose a service](/services/overview): Match each part of your application to the right Openstead service. - [Web services](/services/web-services): Deploy APIs, application backends, and server-rendered websites from GitHub or a container image. - [Static sites](/services/static-sites): Publish a frontend or content site as versioned HTML, CSS, JavaScript, and other assets. - [Private services](/services/private-services): Run internal application services without exposing a public website. - [Background workers](/services/background-workers): Process queues and long-running asynchronous work outside your HTTP server. - [Cron jobs](/services/cron-jobs): Build a command once and run it on a schedule with execution history and logs. - Deploy and operate - [Deployments](/deployments/overview): Understand how code becomes a release and what each deployment status means. - [Connect GitHub](/deployments/github): Select repositories, configure access, and deploy commits automatically. - [Builds and commands](/deployments/builds): Configure build, pre-deploy, and start commands and understand caching and build minutes. - [Languages and detection](/deployments/runtimes): Understand what Openstead detects and when to use explicit commands or a Dockerfile. - [Environment variables and secrets](/deployments/environment-variables): Configure application secrets, shared environment groups, and mounted secret files. - [Dockerfiles and container images](/deployments/docker): Deploy a custom build environment or an image you already publish to a registry. - [Monorepos](/deployments/monorepos): Deploy several applications from one repository with separate roots, commands, and release policies. - [Preview environments](/deployments/previews): Test trusted pull requests in separate service environments before merging. - [Rollbacks and recovery](/deployments/rollbacks): Restore an earlier successful release while accounting for database and configuration changes. - [Logs and metrics](/deployments/logs): Read deployment output, inspect runtime logs, and use resource measurements to investigate problems. - [Health checks](/deployments/health-checks): Tell Openstead when a web or private service is ready to receive requests. - [Scaling and compute](/deployments/scaling): Adjust instance size and replica counts to match your application's resource needs. - [Shell access and one-off jobs](/deployments/shell): Inspect a running application or execute a tracked command using its release environment. - Databases & storage - [PostgreSQL](/databases/postgresql): Create a managed PostgreSQL database, connect privately, and protect application data with backups. - [MySQL](/databases/mysql): Deploy MySQL 8.4, use the free tier, and connect Laravel or other applications over the private network. - [Key Value](/databases/key-value): Use a private Redis-compatible service for caching, queues, and shared application state. - [Database connections](/databases/connections): Connect applications to PostgreSQL, MySQL, and Key Value with private addresses and managed references. - [phpMyAdmin](/databases/phpmyadmin): Browse, query, import, and export your MySQL database securely through the Openstead dashboard. - [Backups and recovery](/databases/backups): Create database exports, configure retention, and restore into a separate database without overwriting the source. - [Persistent disks](/databases/persistent-disks): Keep application uploads and local data across deployments with a mounted persistent disk. - [Migrate an existing database](/databases/migrate): Move data into Openstead with a controlled export, import, verification, and application cutover. - Networking - [Custom domains](/networking/custom-domains): Connect your own hostname to a web service or static site with automatic DNS verification and HTTPS. - [Cloudflare DNS](/networking/cloudflare): Set up Cloudflare records for an Openstead custom domain and resolve verification problems. - [HTTPS and certificates](/networking/https): Understand automatic certificates, domain readiness, and HTTPS troubleshooting. - [Access controls and maintenance](/networking/access-controls): Restrict public requests by IP address or temporarily serve a maintenance page without stopping the application. - [Caching and response headers](/networking/caching): Configure cache behaviour for static assets and application responses without caching private customer data. - [Private networking](/networking/private-networking): Connect services and databases within an environment without exposing internal endpoints to the internet. - [Outbound IP addresses](/networking/outbound-ips): Find the workspace's verified outbound IPv4 address for external firewall allowlists. - [Private Links](/networking/private-links): Connect a workspace to a supported external Azure Private Link service with explicit owner approval. - Guides - [Deploy Next.js](/guides/nextjs): Run Next.js as a Node.js web service or publish a fully static export. - [Deploy Node.js and Express](/guides/nodejs): Deploy a Node.js API with a production start command and a reachable HTTP port. - [Deploy Django](/guides/django): Deploy a Django application with Gunicorn, private PostgreSQL, static assets, and release migrations. - [Deploy FastAPI](/guides/fastapi): Run an ASGI API with Uvicorn and connect it to private application data. - [Deploy Laravel](/guides/laravel): Deploy Laravel with managed MySQL, persistent uploads, controlled migrations, queues, and scheduled tasks. - [Deploy a Vite frontend](/guides/vite): Publish a Vite application as a static site and connect it to a separate API. - [Deploy Go](/guides/go): Build and run a Go HTTP service with an explicit entry point and listening port. - [Deploy Ruby and Rails](/guides/ruby): Deploy a Ruby web application with a production server, database, assets, and background workers. - [Troubleshoot a deployment](/guides/troubleshooting): Diagnose repository, build, readiness, domain, data, and runtime failures in a repeatable order. - [Platform status and incidents](/guides/platform-status): Check Openstead service availability, follow incident updates, and distinguish platform issues from application-specific failures. - Blueprints - [Blueprints](/blueprints/overview): Define related Openstead services in a YAML file and manage them as one project. - [Sync Blueprints from GitHub](/blueprints/repository-sync): Apply version-controlled service configuration when your Blueprint file changes. - [Blueprint YAML reference](/blueprints/reference): Supported manifest fields, service types, configuration mappings, and validation rules. - [Blueprint examples](/blueprints/examples): Adapt working manifest patterns for monorepos, Laravel, databases, workers, and containers. - API - [API overview](/api/overview): Automate projects, services, variables, deployments, and logs with the Openstead REST API. - [Authentication](/api/authentication): Create scoped API keys and understand workspace permissions for automation. - [Pagination](/api/pagination): Retrieve complete collections with bounded pages and opaque cursors. - [Errors and request IDs](/api/errors): Handle machine-readable errors, throttling, and asynchronous outcomes. - [Idempotency and retries](/api/idempotency): Retry supported writes safely after timeouts or connection failures. - [Deploy an application with the API](/api/deployments): Create configuration, queue a release, and observe its deployment and runtime state. - [Read and follow logs](/api/logs): Retrieve retained application logs with filters and numeric continuation cursors. - [API compatibility](/api/compatibility): Build integrations that tolerate additive changes and preserve Openstead's public API guarantees. - Endpoint reference - [API reference](/api/reference): Explore every operation in the Openstead public API. - Catalog - [Get supported configuration and runtime capabilities](/api/reference/catalog/getCatalog): Requires authentication. Read capabilities from this environment; workerOnline reports recent worker readiness. Listed service types are not a guarantee of available capacity. Prices are estimates. - [Get this public core API contract](/api/reference/catalog/getOpenApiSchema): Request parameters, responses, and examples for get this public core api contract. - Workspaces - [Get a workspace](/api/reference/workspaces/getWorkspace): Request parameters, responses, and examples for get a workspace. - Canvas - [Get scoped service topology and shared layout](/api/reference/canvas/getWorkspaceCanvas): Readers can view the workspace, one project across its environments, or one project environment. Only active service records and valid scoped reference/group connections are shown; archived and deleting/deleted services are excluded. Manual secret values are never inspected. Layouts are independent per scope. Unsaved layouts have revision 0. No pagination or silent truncation: scopes beyond 2000 total nodes or 10000 reference records/edges return 413 canvas_too_large. - [Save the shared visual layout](/api/reference/canvas/saveWorkspaceCanvas): Developer, admin or owner required, including in protected environments because this changes visual state only. Replaces all saved positions and viewport for the selected scope. A stale revision returns 409 canvas_revision_conflict; GET the latest canvas before retrying. Unknown or no-longer-visible node IDs return 400 canvas_invalid_node. Unknown scope parameters, duplicate/empty scope values and unsupported fields are rejected. Maximum request body is 256 KiB. Uses optimistic revision control, not Idempotency-Key replay. - Projects - [List projects](/api/reference/projects/listProjects): Legacy requests without limit/cursor return the complete list. Opt in to bounded pages with limit or cursor. - [Create a project and its Production environment](/api/reference/projects/createProject): Request parameters, responses, and examples for create a project and its production environment. - [Get a project](/api/reference/projects/getProject): Request parameters, responses, and examples for get a project. - [Update a project](/api/reference/projects/updateProject): Request parameters, responses, and examples for update a project. - [Delete an empty project](/api/reference/projects/deleteProject): Admin or owner required. Move/delete services and scoped environment groups first. confirm must exactly match the project name. - Services - [List services](/api/reference/services/listServices): Includes archived services. Legacy requests without limit/cursor return the complete list. - [Create a service](/api/reference/services/createService): Creation saves configuration by default. deploy:true also queues real execution if enabled and authorized. Project placement requires an environment belonging to that project. Protected environments require admin access. API keys cannot grant paid-compute or automatic-payment consent. - [Get service configuration and runtime state](/api/reference/services/getService): Request parameters, responses, and examples for get service configuration and runtime state. - [Update service configuration](/api/reference/services/updateService): Merges configuration fields; does not start a new deployment. Some routing settings enqueue routing reconciliation. A service kind cannot change. Environment moves must preserve valid variable-group scope. - [Delete a service or queue infrastructure deletion](/api/reference/services/deleteService): Without runtime infrastructure returns deleted:true. With runtime infrastructure archives the service and queues deletion, returning deleted:false, queued:true. HTTP 200 is preserved; queued does not mean deletion finished. - [Queue a service action](/api/reference/services/runServiceAction): restart, suspend and resume return queued:true and a pollable operation. deploy and clear-cache return a deployment. Hosting must be enabled; runtime actions require an existing provisioned runtime. HTTP 200 does not mean execution has completed. - [Archive service configuration](/api/reference/services/archiveService): Sets archived:true and prevents deployment. This is not a runtime suspend or infrastructure deletion operation. - [Get service operation progress](/api/reference/services/getServiceOperation): Returns the actual queued/running/complete/failed state of a job belonging to this workspace and service. Internal payloads and error details are not exposed. - [Restore archived service configuration](/api/reference/services/restoreService): Sets archived:false; does not automatically deploy or resume infrastructure. - Deployments - [List deployments, newest first](/api/reference/deployments/listDeployments): Bounded by default to 100; maximum limit 200. Follow page.nextCursor for older deployments. Hosting disabled with no runtime returns available:false and empty items. - [Queue a deployment](/api/reference/deployments/createDeployment): Creates a durable deployment/job when hosting is enabled, subject to capacity, billing and source validation. The initial status is queued. Poll getDeployment for progress; use getService for the serving release. A replay returns the original successful response, not the latest status. - [Get deployment progress](/api/reference/deployments/getDeployment): Request parameters, responses, and examples for get deployment progress. - [Request deployment cancellation](/api/reference/deployments/cancelDeployment): Terminal deployments reject new cancellation requests. cancelRequested:true acknowledges the request; a running worker must still stop safely. Poll the deployment for its terminal state. - [Queue a rollback to a successful release](/api/reference/deployments/rollbackDeployment): The source must be a live deployment of this service with a retained image. Reuses its configuration and encrypted secret snapshot to queue a new deployment. confirm is the service name. This is not an in-place status edit. - Logs - [Read or tail service logs](/api/reference/logs/listServiceLogs): Without after returns the newest retained batch in ascending numeric ID order. With after returns later lines in ascending ID order. Continue with response cursor; this is not opaque collection pagination. Retention depends on the plan, and search is limited to 200 characters. - Variables - [List masked variable metadata](/api/reference/variables/listServiceVariables): Values are always null. Legacy requests without limit/cursor return all variables. - [Create an encrypted variable](/api/reference/variables/createServiceVariable): The stored value is encrypted. The response contains only masked metadata. - [Update a variable name or encrypted value](/api/reference/variables/updateServiceVariable): Request parameters, responses, and examples for update a variable name or encrypted value. - [Delete a variable](/api/reference/variables/deleteServiceVariable): Request parameters, responses, and examples for delete a variable. - [Reveal a variable with an audit event](/api/reference/variables/revealServiceVariable): Developer role or above, plus protected-environment checks. This secret-bearing operation is explicitly excluded from idempotent replay; sending an idempotency key is rejected. Never log this response. - Developer tools & integrations - [Python SDK](/integrations/python-sdk): Use synchronous and asynchronous typed Python clients for the Openstead core API. - [TypeScript SDK](/integrations/typescript-sdk): Call the Openstead core API from Node.js with typed resources, async iterators, and cancellation. - [Openstead CLI](/integrations/cli): Deploy, inspect, and operate your applications from Windows, macOS, Linux, or CI. - [CLI command reference](/integrations/cli-reference): Find Openstead commands, context flags, secret input patterns, and automation exit codes. - [MCP server](/integrations/mcp): Connect an MCP-compatible assistant to Openstead with explicit workspace and tool permissions. - [Private container registries](/integrations/container-registries): Store registry credentials and deploy private container images on Openstead. - [Webhooks](/integrations/webhooks): Receive signed deployment, service, and backup events at your HTTPS endpoint. - [Slack and Discord notifications](/integrations/notifications): Send deployment and service updates to your team's existing channels. - [Log and metric streams](/integrations/log-and-metric-streams): Forward future application logs and container measurements to your own HTTPS collector. - Account & teams - [Workspaces](/account/workspaces): Organise team access, services, integrations, and billing within an Openstead workspace. - [Projects and environments](/account/projects): Group related services and separate production, staging, and preview resources. - [Team members and roles](/account/team-members): Invite collaborators, grant appropriate workspace roles, and transfer ownership safely. - [Account security](/account/security): Manage sign-in methods, email verification, two-factor authentication, recovery codes, and sessions. - [API keys](/account/api-keys): Create workspace-scoped keys for Openstead API automation and revoke access when it is no longer needed. - Billing - [Billing overview](/billing/overview): Understand monthly service purchases, checkout, promotional credit, and workspace access. - [Plans and pricing](/billing/pricing): Compare application and database plans, included resources, storage, and build allowances. - [Renewals and plan changes](/billing/renewals): Renew service months, understand the grace period, and schedule a different plan without duplicate charges. - [Invoices and payment records](/billing/invoices): Review service invoices, pay outstanding balances, and download accounting records. - [Promotional credits](/billing/credits): Redeem a promo code, understand invoice reservations, and apply credit to a service purchase.