diff --git a/apps/docs/content/guides/self-hosting.mdx b/apps/docs/content/guides/self-hosting.mdx index 2a4e94bfb1d..9f16ea9ba99 100644 --- a/apps/docs/content/guides/self-hosting.mdx +++ b/apps/docs/content/guides/self-hosting.mdx @@ -7,7 +7,7 @@ hideToc: true ## Get started -The fastest and recommended way to self-host Supabase is using Docker. +The fastest and recommended way to self-host Supabase is to use Docker.
@@ -55,7 +55,7 @@ There are several other options to deploy Supabase. If you're interested in help ## About self-hosting -Self-hosting is a good fit if you need full control over your data, have compliance requirements that prevent using managed services, or want to run Supabase in an isolated environment. +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 @@ -64,11 +64,7 @@ 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. -### Telemetry - -Self-hosted Supabase (Docker) does not phone home or collect any telemetry. - -The **Supabase CLI** is a [separate tool](/docs/guides/local-development/cli/getting-started) from self-hosted Supabase and collects usage telemetry to help improve the developer experience. You can opt out by running `supabase telemetry disable` or setting `SUPABASE_TELEMETRY_DISABLED=1`. See [CLI telemetry](/docs/guides/local-development/cli/getting-started#telemetry) for other opt-out methods. +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 @@ -76,10 +72,18 @@ When you self-host, **you are responsible for**: - Server provisioning and maintenance - Security hardening and keeping OS and services updated -- Maintaining the Postgres database +- 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. diff --git a/apps/docs/content/guides/self-hosting/copy-from-platform-s3.mdx b/apps/docs/content/guides/self-hosting/copy-from-platform-s3.mdx index 1665b9aadc6..57c780c2bb6 100644 --- a/apps/docs/content/guides/self-hosting/copy-from-platform-s3.mdx +++ b/apps/docs/content/guides/self-hosting/copy-from-platform-s3.mdx @@ -39,7 +39,7 @@ For better performance with large files, use the direct storage hostname: `https ## Step 2: Create buckets on self-hosted -Buckets must exist on the destination before you can copy objects into them. You can create them through dashboard UI, or with **SQL Editor**. +Buckets must exist on the destination before you can copy objects into them. You can create them through the dashboard UI, or with the **SQL Editor**. @@ -93,7 +93,7 @@ Replace the credentials with your actual values. For self-hosted, use the `REGIO Verify both remotes connect: -```bash +```sh rclone lsd platform: rclone lsd self-hosted: ``` @@ -104,13 +104,13 @@ Both commands should list your buckets. Copy a single bucket: -```bash +```sh rclone copy platform:your-storage-bucket self-hosted:your-storage-bucket --progress ``` To copy all buckets: -```bash +```sh for bucket in $(rclone lsf platform: | tr -d '/'); do echo "Copying bucket: $bucket" rclone copy "platform:$bucket" "self-hosted:$bucket" --progress @@ -127,7 +127,7 @@ For large migrations, consider adding `--transfers 4` to increase parallelism, o Compare object counts between source and destination: -```bash +```sh rclone size platform:your-storage-bucket && \ rclone size self-hosted:your-storage-bucket ``` @@ -154,7 +154,7 @@ If rclone reports that a bucket doesn't exist on the self-hosted side, create it {/* supa-mdx-lint-disable-next-line Rule003Spelling */} For very large files, increase rclone's timeout: -```bash +```sh rclone copy platform:your-storage-bucket self-hosted:your-storage-bucket --timeout 30m ``` diff --git a/apps/docs/content/guides/self-hosting/custom-email-templates.mdx b/apps/docs/content/guides/self-hosting/custom-email-templates.mdx index 9135f12b86e..777933cf4a1 100644 --- a/apps/docs/content/guides/self-hosting/custom-email-templates.mdx +++ b/apps/docs/content/guides/self-hosting/custom-email-templates.mdx @@ -69,7 +69,7 @@ volumes/ Update the `auth` service to depend on `templates-server`, and pass the email template environment variables. Then add a `templates-server` service to serve the templates from `./volumes/templates`. -```yml +```yml name=docker-compose.yml services: auth: depends_on: @@ -90,7 +90,7 @@ services: #### What this configuration does -- Adds a `templates-server`service that runs alongside the Supabase services in the same docker network. +- Adds a `templates-server` service that runs alongside the Supabase services in the same docker network. - Serves your custom email template files from the `./volumes/templates` directory. - Keeps the templates-server private to the Docker network (no published ports), so it is not accessible from outside. - Allows the `auth` service to fetch templates via `http://templates-server/