mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 18:05:11 +03:00
## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? This PR converts link sections in the self-hosting overview page to the `ContentListings` component, puts conceptual guidance before deployment options, and adds badge support for the Docker card (minor). Relates to DOCS-1137 ## Current behavior `self-hosting.mdx` uses hand-authored `<GlassPanel>` / `<Link>` JSX for two sections: - **Get started**: Docker card with a JSX title containing a `<Badge>` element (was previously deferred for this reason). - **Community-driven projects**: Two cards with trivial `<span>`-wrapped string titles. Get started and Community cards appear at the top of the page, before the conceptual overview. The Support and community section uses hand-authored bullet lists for GitHub, Discord, and Reddit links. ## New behavior - The self-hosting overview page now uses data-driven `ContentListings` instead of hand-written cards and bullet lists. - Conceptual content (how self-hosting differs, your responsibilities, telemetry) comes first; deployment options and community resources follow. - Section intro text lives in listing data rather than inline MDX. - Brand icons added to all listing cards (Docker, Kubernetes, Traefik, GitHub, Discord, Reddit). - Minor: Added support for badges to content listings, such as "Official" in the Docker tile Data lives in `self-hosting.data.ts` (5 groups, 8 links) and is registered in `content-listings/index.ts`. ## Additional context ### Icon usage rights New brand icons (Kubernetes, Traefik, Reddit) are sourced from [Simple Icons](https://simpleicons.org) (CC0 1.0). Existing icons (Docker, GitHub, Discord) reuse assets already in `apps/docs/public/img/icons/`. Use is non-commercial documentation only — consistent with existing docs icon usage and trademark fair-use for identifying linked third-party services. ### To do: - [ ] Check with @aantti if he's on board with switching the page to content listings we can lint for and the content restructure to match other overview pages ## Verification | Gate | Result | |------|--------| | `pnpm vitest run lib/content-listings.test.ts` | ✅ 12/12 passed | | `pnpm build:guides-markdown` | ✅ 744 files generated | | `pnpm lint:mdx` (self-hosting.mdx) | ✅ No warnings on changed file | ### Proof: restructured self-hosting page with ContentListings and icons | [Before (production)](https://supabase.com/docs/guides/self-hosting) | [After (PR preview)](https://docs-git-nikrichers-docs-1137-self-hosting-supabase.vercel.app/docs/guides/self-hosting) | |---|---| |  |  | <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Updated the self-hosting guide to use dynamic content listings for “Get started,” community resources, support options, and sharing experiences. * Added richer listing cards with optional badges and improved icon handling. * Expanded self-hosting resource groups to surface more relevant links in docs navigation. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Nik Richers <nik@validmind.ai>
105 lines
3.1 KiB
TypeScript
105 lines
3.1 KiB
TypeScript
import type { ContentListingGroup } from '~/lib/content-listings.schema'
|
|
|
|
export const selfHostingGetStarted: ContentListingGroup = {
|
|
id: 'self-hosting-get-started',
|
|
heading: 'Get started',
|
|
headingLevel: 'h2',
|
|
type: 'grid',
|
|
columns: 2,
|
|
description: 'The fastest and recommended way to self-host Supabase is to use Docker.',
|
|
items: [
|
|
{
|
|
title: 'Docker',
|
|
href: '/guides/self-hosting/docker',
|
|
icon: '/docs/img/icons/docker',
|
|
description: 'Deploy Supabase within your own infrastructure using Docker Compose.',
|
|
badge: 'Official',
|
|
},
|
|
],
|
|
}
|
|
|
|
export const selfHostingCommunity: ContentListingGroup = {
|
|
id: 'self-hosting-community',
|
|
heading: 'Community-driven projects',
|
|
headingLevel: 'h2',
|
|
type: 'grid',
|
|
columns: 2,
|
|
description:
|
|
"There are several other options to deploy Supabase. If you're interested in helping these projects, visit our Community page.",
|
|
items: [
|
|
{
|
|
title: 'Kubernetes',
|
|
href: 'https://github.com/supabase-community/supabase-kubernetes',
|
|
icon: '/docs/img/icons/kubernetes-icon',
|
|
hasLightIcon: false,
|
|
description: 'Helm charts to deploy a Supabase on Kubernetes.',
|
|
},
|
|
{
|
|
title: 'Traefik',
|
|
href: 'https://github.com/supabase-community/supabase-traefik',
|
|
icon: '/docs/img/icons/traefik-icon',
|
|
hasLightIcon: false,
|
|
description: 'A self-hosted Supabase setup with Traefik as a reverse proxy.',
|
|
},
|
|
],
|
|
}
|
|
|
|
export const selfHostingResolveIssues: ContentListingGroup = {
|
|
id: 'self-hosting-resolve-issues',
|
|
description: 'For resolving common issues:',
|
|
type: 'grid',
|
|
columns: 2,
|
|
items: [
|
|
{
|
|
title: 'GitHub Discussions',
|
|
href: 'https://github.com/orgs/supabase/discussions?discussions_q=is%3Aopen+label%3Aself-hosted',
|
|
icon: '/docs/img/icons/github-icon',
|
|
description: 'Questions, feature requests, and workarounds',
|
|
},
|
|
{
|
|
title: 'GitHub Issues',
|
|
href: 'https://github.com/supabase/supabase/issues?q=is%3Aissue%20state%3Aopen%20label%3Aself-hosted',
|
|
icon: '/docs/img/icons/github-icon',
|
|
description: 'Known issues',
|
|
},
|
|
],
|
|
}
|
|
|
|
export const selfHostingGetHelp: ContentListingGroup = {
|
|
id: 'self-hosting-get-help',
|
|
description: 'Get help and connect with other users:',
|
|
type: 'grid',
|
|
columns: 2,
|
|
items: [
|
|
{
|
|
title: 'Discord',
|
|
href: 'https://discord.supabase.com',
|
|
icon: '/docs/img/icons/discord-icon',
|
|
hasLightIcon: false,
|
|
description: 'Real-time chat and community support',
|
|
},
|
|
{
|
|
title: 'Reddit',
|
|
href: 'https://www.reddit.com/r/Supabase/',
|
|
icon: '/docs/img/icons/reddit-icon',
|
|
hasLightIcon: false,
|
|
description: 'Official Supabase subreddit',
|
|
},
|
|
],
|
|
}
|
|
|
|
export const selfHostingShareExperience: ContentListingGroup = {
|
|
id: 'self-hosting-share-experience',
|
|
description: 'Share your self-hosting experience:',
|
|
type: 'grid',
|
|
columns: 2,
|
|
items: [
|
|
{
|
|
title: 'GitHub Discussions',
|
|
href: 'https://github.com/orgs/supabase/discussions/39820',
|
|
icon: '/docs/img/icons/github-icon',
|
|
description: "Self-hosting: What's working (and what's not)?",
|
|
},
|
|
],
|
|
}
|