← LinkedIn demo

AILANG×supabase.com

AI portable generated 2026-05-14
agent-ready privacy portable

supabase.com scored 7/10 on portable.

The radar shows AILANG-readiness across three commercial concerns. High means supabase.com is already strong there; low means AILANG could meaningfully help.

Why portable scored 7/10
  • Page copy that names one specific LLM provider (e.g. "powered by Claude") without portability claims.
  • Body mentions two or more named AI providers (Claude, GPT, Gemini, Mistral, Llama, etc.) — already vendor-multi.
  • Body mentions self-hosted, on-prem, WASM, Docker, Kubernetes, or "deploy anywhere" — runtime portability claimed.
  • Body mentions "bring your own key", "BYOK", "any LLM", or "model-agnostic" — caller controls the model.

Full breakdown ↓ · View rubric ↗

Developers and organizations seeking to deploy and manage Supabase within their own infrastructure to maintain full control over data and meet compliance requirements.

This documentation details the process of self-hosting Supabase, enabling users to install and manage the platform on their own infrastructure, primarily using Docker. It covers setup, configuration of services like Auth and Storage, and responsibilities for maintenance and security, catering to those who require full control over their data or have specific compliance needs.
Supabase Docker Postgres Self-hosting API Gateway OAuth/SAML SSO

What AILANG Parse sees on supabase.com

Structural extraction — the same content an AI agent would consume from this page.

12 headings9 images10 lists0 tables16 linksHTML parsing by AILANG Parse

12 sections — page skeleton

6 navs 1 main 1 article 2 sections 2 footers

12 headings

Self-Hosting Install and run your own Supabase on your computer, server, or cloud infrastructure. Get started# Community-driven projects# About self-hosting# How self-hosted Supabase differs#

9 images

Supabase wordmarkSupabase wordmarkSupabase wordmarkSupabase wordmarkSupabase wordmarkSupabase wordmark

10 list items

[Self-Hosting with Docker](/docs/guides/self-hosting/docker) [ Configure new API keys](/docs/guides/self-hosting/self-hosted-auth-keys) [ Self-Hosted Functions](/docs/guides/self-hosting/self-hosted-functions) [ Add Reverse Proxy with HTTPS](/docs/guides/self-hosting/self-hosted-proxy-https) [ Envoy API Gateway](/docs/guides/self-hosting/self-hosted-envoy) [ Upgrade to Postgres 17](/docs/guides/self-hosting/postgres-upgrade-17) [ Restore Project from Platform](/docs/guides/self-hosting/restore-from-platform) [ Configure S3 Storage](/docs/guides/self-hosting/self-hosted-s3) [ Copy Storage from Platform](/docs/guides/self-hosting/copy-from-platform-s3) [ Custom Email Templates](/docs/guides/self-hosting/custom-email-templates) [ Configure Social Login (OAuth)](/docs/guides/self-hosting/self-hosted-oauth) [ Configure Phone Login & MFA](/docs/guides/self-hosting/self-hosted-phone-mfa)
Show the full extract — what AILANG Parse pulled from this page
# Self-Hosting | Supabase Docs


[Image: Supabase wordmark]

[Image: Supabase wordmark]

DOCS

[DOCS](/docs)

- [Start](/docs/guides/getting-started)
- Products
- Build
- Manage
- Reference
- Resources

[Image: Supabase wordmark]

[Image: Supabase wordmark]

DOCS

[DOCS](/docs)

Search docs...Ctrl K

Main menu

- [Overview](/docs/guides/self-hosting)
- [Self-Hosting with Docker](/docs/guides/self-hosting/docker)
- [
Configure new API keys](/docs/guides/self-hosting/self-hosted-auth-keys)
- [
Self-Hosted Functions](/docs/guides/self-hosting/self-hosted-functions)
- [
Add Reverse Proxy with HTTPS](/docs/guides/self-hosting/self-hosted-proxy-https)
- [
Envoy API Gateway](/docs/guides/self-hosting/self-hosted-envoy)
- [
Upgrade to Postgres 17](/docs/guides/self-hosting/postgres-upgrade-17)
- [
Restore Project from Platform](/docs/guides/self-hosting/restore-from-platform)
- [
Configure S3 Storage](/docs/guides/self-hosting/self-hosted-s3)
- [
Copy Storage from Platform](/docs/guides/self-hosting/copy-from-platform-s3)
- [
Custom Email Templates](/docs/guides/self-hosting/custom-email-templates)
- [
Configure Social Login (OAuth)](/docs/guides/self-hosting/self-hosted-oauth)
- [
Configure Phone Login & MFA](/docs/guides/self-hosting/self-hosted-phone-mfa)
- [
Configure SAML 2.0 SSO](/docs/guides/self-hosting/self-hosted-saml-sso)
- [
Enable MCP server](/docs/guides/self-hosting/enable-mcp)
- [
Remove superuser access](/docs/guides/self-hosting/remove-superuser-access)
- [
Reference](/docs/reference/self-hosting-auth/introduction)
- [
Configuration](/docs/guides/self-hosting/auth/config)
- [
Reference](/docs/reference/self-hosting-storage/introduction)
- [
Configuration](/docs/guides/self-hosting/storage/config)
- [
Reference](/docs/reference/self-hosting-realtime/introduction)
- [
Configuration](/docs/guides/self-hosting/realtime/config)
- [
Reference](/docs/reference/self-hosting-analytics/introduction)
- [
Configuration](/docs/guides/self-hosting/analytics/config)
- [
Reference](/docs/reference/self-hosting-functions/introduction)
- [
Guide](/docs/guides/self-hosting/self-hosted-functions)

[Image: Supabase wordmark]

[Image: Supabase wordmark]

DOCS

[DOCS](/docs)

- [Start](/docs/guides/getting-started)
- Products
- Build
- Manage
- Reference
- Resources

[Image: Supabase wordmark]

[Image: Supabase wordmark]

DOCS

[DOCS](/docs)

Search docs...Ctrl K

Self-Hosting

# 
Self-Hosting

## 
Install and run your own Supabase on your computer, server, or cloud infrastructure.

---

## Get started#

The fastest and recommended way to self-host Supabase is to use Docker.

[Image: [object Object]]

Docker

Official

Deploy Supabase within your own infrastructure using Docker Compose.

[Docker
Official
Deploy Supabase within your own infrastructure using Docker Compose.](/docs/guides/self-hosting/docker)

## Community-driven projects#

There are several other options to deploy Supabase. If you're interested in helping these projects, visit our [Community](/contribute) page.

[KubernetesHelm charts to deploy a Supabase on Kubernetes.](https://github.com/supabase-community/supabase-kubernetes)

[TraefikA self-hosted Supabase setup with Traefik as a reverse proxy.](https://github.com/supabase-community/supabase-traefik)

## About self-hosting#

Self-hosting is a good fit if you need full control over your data, have compliance requirements that prevent you from using managed services, or want to run Supabase in an isolated environment.

### How self-hosted Supabase differs#

Self-hosted Supabase is different from:

- **Supabase CLI** (local development), which is intended for development and testing only.
- **Managed Supabase** platform, which is fully hosted and operated by Supabase.

Self-hosted Supabase mimics a single project. Studio doesn't support multiple organizations or projects. Platform-only [features](/features) such as branching, advanced metrics beyond logs, managed backups and PITR, analytics and vector buckets, ETL, and the platform management API are **unavailable** in self-hosted configuration. Most settings are configured through [environment variables](https://github.com/supabase/supabase/blob/master/docker/.env.example).

### Your responsibilities when self-hosting#

When you self-host, **you are responsible for**:

- Server provisioning and maintenance
- Security hardening and keeping OS and services updated
- Service configuration and management
- Postgres database maintenance
- High availability and scalability
- Backups and disaster recovery
- Monitoring and uptime

### Telemetry#

Self-hosted Supabase (run via Docker Compose) **does not phone home or collect any telemetry**.

The **Supabase CLI** is a [separate tool](/docs/guides/local-development/cli/getting-started) and collects usage telemetry to help improve the developer experience. See [CLI telemetry](/docs/guides/local-development/cli/getting-started#telemetry) for opt-out methods.

## Support and community#

Self-hosted Supabase is community-supported.

For resolving common issues:

- [GitHub Discussions](https://github.com/orgs/supabase/discussions?discussions_q=is%3Aopen+label%3Aself-hosted) - Questions, feature requests, and workarounds
- [GitHub Issues](https://github.com/supabase/supabase/issues?q=is%3Aissue%20state%3Aopen%20label%3Aself-hosted) - Known issues

Get help and connect with other users:

- [Discord](https://discord.supabase.com) - Real-time chat and community support
- [Reddit](https://www.reddit.com/r/Supabase/) - Official Supabase subreddit

Share your self-hosting experience:

- [GitHub Discussions](https://github.com/orgs/supabase/discussions/39820) - "Self-hosting: What's working (and what's not)?"

### Enterprise self-hosting#

If you're an enterprise using self-hosted Supabase, we'd love to hear from you. Reach out to our [Growth Team](https://forms.supabase.com/enterprise) to discuss your use case, share feedback, or explore design partnership opportunities.

*Footer:*
[Edit this page on GitHub](https://github.com/supabase/supabase/blob/master/apps/docs/content/guides/self-hosting.mdx)

### Is this helpful?

No

Yes

### AI Tools

Copy as Markdown

[Ask ChatGPT](https://chatgpt.com/?hint=search&q=Read from https://supabase.com/docs/guides/self-hosting so I can ask questions about its contents)

[Ask Claude](https://claude.ai/new?q=Read from https://supabase.com/docs/guides/self-hosting so I can ask questions about its contents)

*Footer:*
- Need some help?[Contact support](https://supabase.com/support)
- Latest product updates?[See Changelog](https://supabase.com/changelog)
- Something's not right?[Check system status](https://status.supabase.com/)

---

[© Supabase Inc](https://supabase.com/)

—

[Contributing](https://github.com/supabase/supabase/blob/master/apps/docs/DEVELOPERS.md)

[Author Styleguide](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md)

[Open Source](https://supabase.com/open-source)

[SupaSquad](https://supabase.com/supasquad)

Privacy Settings

[Twitter](https://twitter.com/supabase)

[GitHub](https://github.com/supabase)

[Discord](https://discord.supabase.com/)

[Youtube](https://youtube.com/c/supabase)

1. [Self-Hosting](/docs/guides/self-hosting)
2. [Overview](/docs/guides/self-hosting)

page preview · the URL we fetched https://supabase.com/docs/guides/self-hosting ↗
Screenshot of supabase.com

Couldn't render a preview for this site. Open the URL in a new tab ↗

Screenshot via thum.io

supabase.com scored 7/10 on portable. AILANG opportunity is therefore 3/10. Here's where it would land first.

Same module, any LLM — picked at the CLI

Provider selection isn't a code edit — it's a flag on the run command. The exact same compiled .ail file talks to Anthropic, Google, OpenAI, OpenRouter or local Ollama depending on what you pass to `--ai`. Vendor lock-in becomes a shell-history concern.

# Same chat.ail, three vendors — no source change.
ailang run --ai claude-haiku-4-5  chat.ail
ailang run --ai gemini-2.5-flash chat.ail
ailang run --ai gpt-5.1-nano     chat.ail
# std/ai dispatches to each provider's native API.
→ AILANG docs

Structured output, portable across providers

callJson(prompt, schema) maps to each provider's native structured-output primitive — responseSchema for Gemini, response_format for OpenAI, forced-tool for Anthropic. Your schema, their plumbing.

let result = callJson(prompt, intentSchema);
-- same AILANG code, four different provider paths underneath.
→ AILANG docs

OpenRouter routing with replayable resolution

Reach SOTA open-source models through OpenRouter; the resolved model ID is logged so the eval is replayable months later, even if the upstream router has moved on.

call(prompt, model = "openrouter/meta-llama/llama-4-405b");
-- the eval harness pins the exact resolved model ID.
→ AILANG docs

How this page was made

func sketchSite(url: string<pii>, topic: Topic) -> Sketch
  ! {Net @limit=1, AI @limit=5, FS @limit=4, Process, Declassify}
SignalTopicResultPointsAILANG primitive
agent.json referencedagent-ready0/1ailang serve-api generates A2A agent cards automatically — bonus if you're an early adopter
openapi.json referencedagent-ready0/2ailang serve-api generates OpenAPI 3.1 from Hindley-Milner type signatures
MCP endpoint referencedagent-ready0/2ailang serve-api --mcp-http exposes typed functions as MCP tools
Public API docs linkedagent-ready2/2ailang serve-api hosts Swagger + ReDoc at /api/_meta/ by default
Webhooks documentedagent-ready0/2ailang serve-api handles webhooks as typed handler functions with effect-tracked side effects
Rate limits documentedagent-ready2/2Capability budgets — Net @limit=N is the symmetric server-side primitive for what agents see as rate limits
Streaming / SSE endpointagent-ready0/2std/stream — ssePost and Stream effect handle event-source endpoints with typed event types
Sandbox / test environment offeredagent-ready2/2ailang --ai-stub plus mock effect handlers — deterministic, capability-scoped fakes for any effect, including Net and AI
Authentication documentedagent-ready2/2std/jwt for verification, IFC labels (string / string) to keep credentials out of public sinks at the type level
Idempotency keys documentedagent-ready0/2Pure functions are idempotent by construction; requires/ensures contracts express idempotence as a static guarantee
AG-UI streaming protocolagent-ready0/1std/stream — the AG-UI event lifecycle (RUN_STARTED → TEXT_MESSAGE_CONTENT → TOOL_CALL_RESULT → RUN_FINISHED) is a textbook sum type. ADTs + exhaustive pattern matching make every event-type branch a compile error to skip.
HTTP 402 agent payments (x402 / pay-per-crawl)agent-ready0/1Net @endpoint-scoped capability budgets bound payment destinations; requires { amount <= budget } gates the payload; IFC labels keep the signed payment key out of public sinks. Same primitives cover x402 payload signing and Cloudflare's crawler-price negotiation.
AP2 Agent Payments Protocolagent-ready0/1Mandates ARE contracts. requires { intent.price <= mandate.maxPrice } + ensures { cart.total <= intent.price } is a one-to-one translation of an Intent/Cart Mandate into AILANG. Z3 can verify the bounds at compile time.
UTCP tool-calling protocolagent-ready0/1Typed function signatures are the manifest. ailang serve-api emits the same metadata as a UTCPManual (name, input/output schema, native endpoint) — direct-call discovery without a proxy server.
End-to-end encryption documentedprivacy0/2IFC labels (string) force decryption to flow through a typed boundary; the compiler refuses to publish sealed values without explicit declassification
Compliance certifications citedprivacy0/2requires/ensures contracts express machine-verifiable claims; capability budgets bound audit-trail effects; effect rows leave nothing un-declared
Data minimisation languageprivacy0/2Capability scoping — each Net call declares its endpoint in the effect row, so "doesn't sell" becomes a type-system-enforceable claim, not a marketing one
Third-party domains restrainedprivacy0/2Capability scoping — each Net call declares its endpoint in the effect row
Data residency / on-prem languageprivacy2/2Three-runtime deploy — same module runs in WASM (browser), Cloud Run, and native CLI
Single-vendor LLM languageportable2/2std/ai multi-provider — switch from Anthropic to Gemini to OpenAI without rewriting
Multiple AI providers citedportable2/2std/ai — one Step API across Anthropic, OpenAI, Gemini, OpenRouter, Ollama, and custom-package providers
Cross-runtime / deployment portabilityportable2/2Effect handlers as runtime adapters — same .ail runs as WASM in the browser, a Cloud Run container, and a native CLI; only the handlers change
BYO key / model-agnosticportable0/2AILANG WASM — the full interpreter ships as a browser bundle, so caller-held keys (BYOK), offline apps, and embedded demos all work client-side