docs(self-hosted): add a separate architecture diagram (#48763)

This commit is contained in:
Andrey A. authored and GitHub committed 2026-08-11 11:48:22 +02:00
1 parent 1cc0682c47
commit 9596b5f3ed
3 files changed
+238 -10

No files matched your search

@@ -122,7 +122,7 @@ A shallow clone of the full Supabase repository. Works on any OS with `git` inst
```sh
# Get the code
git clone --depth 1 --branch self-hosted/v0.7.2 https://github.com/supabase/supabase
git clone --depth 1 --branch self-hosted/v0.8.0 https://github.com/supabase/supabase
# Make your new supabase project directory
mkdir supabase-project
@@ -139,7 +139,7 @@ cp -rf supabase/docker/. supabase-project
cd supabase-project && cp .env.example .env
# Record the base version so update.sh can upgrade this install later
printf 'ref=self-hosted/v0.7.2\n' > .supabase-version
printf 'ref=self-hosted/v0.8.0\n' > .supabase-version
# Pull the latest images
docker compose pull
@@ -153,7 +153,7 @@ Only downloads the `docker/` directory from the repository, saving bandwidth and
```sh
# Get the code using git sparse checkout
git clone --filter=blob:none --no-checkout --depth=1 --quiet --branch self-hosted/v0.7.2 https://github.com/supabase/supabase
git clone --filter=blob:none --no-checkout --depth=1 --quiet --branch self-hosted/v0.8.0 https://github.com/supabase/supabase
cd supabase
git sparse-checkout init --cone
git sparse-checkout set docker
@@ -175,7 +175,7 @@ cp -rf supabase/docker/. supabase-project
cd supabase-project && cp .env.example .env
# Record the base version so update.sh can upgrade this install later
printf 'ref=self-hosted/v0.7.2\n' > .supabase-version
printf 'ref=self-hosted/v0.8.0\n' > .supabase-version
# Pull the latest images
docker compose pull
@@ -237,7 +237,7 @@ Review and change URL configuration variables:
Throughout the self-hosting guides, `<your-domain>` stands for the host where your Supabase instance is reachable: your domain name, your server's IP, or `localhost`, depending on your setup.
- **Default setup:** The API gateway (Kong) listens on port `8000`, so the full URL is `http://<your-domain>:8000`.
- **Default setup:** The API gateway (Envoy by default) listens on port `8000`, so the full URL is `http://<your-domain>:8000`.
- **Behind a [reverse proxy](/docs/guides/self-hosting/self-hosted-proxy-https):** the proxy terminates TLS on port `443`, so the URL becomes `https://<your-domain>`.
</Admonition>
@@ -305,7 +305,7 @@ sh run.sh stop
<Admonition type="caution" title="Windows: CRLF line endings">
If the API gateway (Kong) fails to start with an entrypoint error, your local files may have been checked out with CRLF line endings instead of LF. Re-clone the repository, or normalize everything in the `docker/` directory to LF, then restart Supabase. Fresh clones should already use LF because of `.gitattributes`.
If the API gateway fails to start with an entrypoint error, your local files may have been checked out with CRLF line endings instead of LF. Re-clone the repository, or normalize everything in the `docker/` directory to LF, then restart Supabase. Fresh clones should already use LF because of `.gitattributes`.
</Admonition>
@@ -463,10 +463,10 @@ Supabase is built from open source tools, each chosen or developed for productio
If the tools and communities already exist, with an MIT, Apache 2, PostgreSQL, or equivalent open source license, we will use and support that tool. If the tool doesn't exist, we build and open source it ourselves.
<Image
alt="Diagram showing the architecture of Supabase. The API gateway (Kong) sits in front of 7 services: GoTrue, PostgREST, Realtime, Storage, pg_meta, Functions, and pg_graphql. All the services talk to a single Postgres instance."
alt="Diagram showing the architecture of self-hosted Supabase. The API gateway (Envoy) sits in front of 7 services: Auth, PostgREST, Realtime, Storage, Edge Runtime, postgres-meta, and Studio. The services connect to a single Postgres instance, with Studio reaching it through pg-meta. Supavisor pools connections to the same Postgres instance."
src={{
dark: "/docs/img/supabase-architecture.svg",
light: "/docs/img/supabase-architecture--light.svg",
dark: "/docs/img/supabase-self-hosted-architecture.svg",
light: "/docs/img/supabase-self-hosted-architecture--light.svg",
}}
width={1600}
@@ -474,7 +474,7 @@ If the tools and communities already exist, with an MIT, Apache 2, PostgreSQL, o
/>
- **[Studio](https://github.com/supabase/supabase/tree/master/apps/studio)** - A dashboard for managing your self-hosted Supabase project
- **[Kong](https://github.com/Kong/kong)** - Kong API gateway
- **[Envoy](https://www.envoyproxy.io/)** - API gateway (default; Kong available as an optional override)
- **[Auth](https://github.com/supabase/auth)** - JWT-based authentication API for user sign-ups, logins, and session management
- **[PostgREST](https://github.com/PostgREST/postgrest)** - Web server that turns your Postgres database directly into a RESTful API
- **[Realtime](https://github.com/supabase/realtime)** - Elixir server that listens to Postgres database changes and broadcasts them to subscribed clients
@@ -0,0 +1,114 @@
<svg width="1600" height="767" viewBox="0 0 1600 767" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M146.707 353.971C146.317 354.361 145.683 354.361 145.293 353.971L138.929 347.607C138.538 347.216 138.538 346.583 138.929 346.193C139.319 345.802 139.953 345.802 140.343 346.193L146 351.849L151.657 346.193C152.047 345.802 152.68 345.802 153.071 346.193C153.462 346.583 153.462 347.216 153.071 347.607L146.707 353.971ZM147 121L147 353.264L145 353.264L145 121L147 121Z" fill="#11181C"/>
<path d="M364.707 353.971C364.317 354.361 363.683 354.361 363.293 353.971L356.929 347.607C356.538 347.216 356.538 346.583 356.929 346.193C357.319 345.802 357.953 345.802 358.343 346.193L364 351.849L369.657 346.193C370.047 345.802 370.681 345.802 371.071 346.193C371.462 346.583 371.462 347.216 371.071 347.607L364.707 353.971ZM365 121L365 353.264L363 353.264L363 121L365 121Z" fill="#11181C"/>
<path d="M582.707 353.971C582.317 354.361 581.683 354.361 581.293 353.971L574.929 347.607C574.538 347.216 574.538 346.583 574.929 346.193C575.319 345.802 575.953 345.802 576.343 346.193L582 351.849L587.657 346.193C588.047 345.802 588.681 345.802 589.071 346.193C589.462 346.583 589.462 347.216 589.071 347.607L582.707 353.971ZM583 121L583 353.264L581 353.264L581 121L583 121Z" fill="#11181C"/>
<path d="M800.707 353.971C800.317 354.361 799.683 354.361 799.293 353.971L792.929 347.607C792.538 347.216 792.538 346.583 792.929 346.193C793.319 345.802 793.953 345.802 794.343 346.193L800 351.849L805.657 346.193C806.047 345.802 806.681 345.802 807.071 346.193C807.462 346.583 807.462 347.216 807.071 347.607L800.707 353.971ZM801 121L801 353.264L799 353.264L799 121L801 121Z" fill="#11181C"/>
<path d="M1018.71 353.971C1018.32 354.361 1017.68 354.361 1017.29 353.971L1010.93 347.607C1010.54 347.216 1010.54 346.583 1010.93 346.193C1011.32 345.802 1011.95 345.802 1012.34 346.193L1018 351.849L1023.66 346.193C1024.05 345.802 1024.68 345.802 1025.07 346.193C1025.46 346.583 1025.46 347.216 1025.07 347.607L1018.71 353.971ZM1019 121L1019 353.264L1017 353.264L1017 121L1019 121Z" fill="#11181C"/>
<path d="M1236.71 353.971C1236.32 354.361 1235.68 354.361 1235.29 353.971L1228.93 347.607C1228.54 347.216 1228.54 346.583 1228.93 346.193C1229.32 345.802 1229.95 345.802 1230.34 346.193L1236 351.849L1241.66 346.193C1242.05 345.802 1242.68 345.802 1243.07 346.193C1243.46 346.583 1243.46 347.216 1243.07 347.607L1236.71 353.971ZM1237 121L1237 353.264L1235 353.264L1235 121L1237 121Z" fill="#11181C"/>
<path d="M1454.71 353.971C1454.32 354.361 1453.68 354.361 1453.29 353.971L1446.93 347.607C1446.54 347.216 1446.54 346.583 1446.93 346.193C1447.32 345.802 1447.95 345.802 1448.34 346.193L1454 351.849L1459.66 346.193C1460.05 345.802 1460.68 345.802 1461.07 346.193C1461.46 346.583 1461.46 347.216 1461.07 347.607L1454.71 353.971ZM1455 121L1455 353.264L1453 353.264L1453 121L1455 121Z" fill="#11181C"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764ZM145 400L145 585.057L147 585.057L147 400L145 400Z" fill="#11181C"/>
<path d="M363.293 585.764C363.683 586.154 364.317 586.154 364.707 585.764L371.071 579.4C371.462 579.009 371.462 578.376 371.071 577.986C370.68 577.595 370.047 577.595 369.657 577.986L364 583.642L358.343 577.986C357.953 577.595 357.319 577.595 356.929 577.986C356.538 578.376 356.538 579.009 356.929 579.4L363.293 585.764ZM363 400L363 585.057L365 585.057L365 400L363 400Z" fill="#11181C"/>
<path d="M581.293 585.764C581.683 586.154 582.317 586.154 582.707 585.764L589.071 579.4C589.462 579.009 589.462 578.376 589.071 577.986C588.68 577.595 588.047 577.595 587.657 577.986L582 583.642L576.343 577.986C575.953 577.595 575.319 577.595 574.929 577.986C574.538 578.376 574.538 579.009 574.929 579.4L581.293 585.764ZM581 400L581 585.057L583 585.057L583 400L581 400Z" fill="#11181C"/>
<path d="M799.293 585.764C799.683 586.154 800.317 586.154 800.707 585.764L807.071 579.4C807.462 579.009 807.462 578.376 807.071 577.986C806.68 577.595 806.047 577.595 805.657 577.986L800 583.642L794.343 577.986C793.953 577.595 793.319 577.595 792.929 577.986C792.538 578.376 792.538 579.009 792.929 579.4L799.293 585.764ZM799 400L799 585.057L801 585.057L801 400L799 400Z" fill="#11181C"/>
<path d="M1017.29 585.764C1017.68 586.154 1018.32 586.154 1018.71 585.764L1025.07 579.4C1025.46 579.009 1025.46 578.376 1025.07 577.986C1024.68 577.595 1024.05 577.595 1023.66 577.986L1018 583.642L1012.34 577.986C1011.95 577.595 1011.32 577.595 1010.93 577.986C1010.54 578.376 1010.54 579.009 1010.93 579.4L1017.29 585.764ZM1017 400L1017 585.057L1019 585.057L1019 400L1017 400Z" fill="#11181C"/>
<path d="M1235.29 585.764C1235.68 586.154 1236.32 586.154 1236.71 585.764L1243.07 579.4C1243.46 579.009 1243.46 578.376 1243.07 577.986C1242.68 577.595 1242.05 577.595 1241.66 577.986L1236 583.642L1230.34 577.986C1229.95 577.595 1229.32 577.595 1228.93 577.986C1228.54 578.376 1228.54 579.009 1228.93 579.4L1235.29 585.764ZM1235 400L1235 585.057L1237 585.057L1237 400L1235 400Z" fill="#11181C"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764Z" transform="translate(1175 -185.764) rotate(90 146 585.764)" fill="#11181C"/>
<path d="M1322 399L1400 399L1400 401L1322 401Z" fill="#11181C"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764Z" transform="translate(1175 39.236) rotate(90 146 585.764)" fill="#11181C"/>
<path d="M1322 624L1400 624L1400 626L1322 626Z" fill="#11181C"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764Z" transform="translate(1175 60.236) rotate(90 146 585.764)" fill="#11181C"/>
<path d="M1322 645L1400 645L1400 647L1322 647Z" fill="#11181C"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764Z" transform="translate(1175 81.236) rotate(90 146 585.764)" fill="#11181C"/>
<path d="M1322 666L1400 666L1400 668L1322 668Z" fill="#11181C"/>
<rect x="91.4999" y="240.978" width="109" height="40" rx="16" fill="#232323"/>
<rect x="92.7499" y="242.228" width="106.5" height="37.5" rx="14.75" stroke="#7E868C" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="309.5" y="240.978" width="109" height="40" rx="16" fill="#232323"/>
<rect x="310.75" y="242.228" width="106.5" height="37.5" rx="14.75" stroke="#7E868C" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="496" y="240.978" width="172" height="40" rx="16" fill="#232323"/>
<rect x="497.25" y="242.228" width="169.5" height="37.5" rx="14.75" stroke="#7E868C" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="722" y="240.978" width="156" height="40" rx="16" fill="#232323"/>
<rect x="723.25" y="242.228" width="153.5" height="37.5" rx="14.75" stroke="#7E868C" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="924.5" y="240.978" width="187" height="40" rx="16" fill="#232323"/>
<rect x="925.75" y="242.228" width="184.5" height="37.5" rx="14.75" stroke="#7E868C" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="1197" y="240.978" width="78" height="40" rx="16" fill="#232323"/>
<rect x="1198.25" y="242.228" width="75.5" height="37.5" rx="14.75" stroke="#7E868C" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="1424" y="240.978" width="60" height="40" rx="16" fill="#232323"/>
<rect x="1425.25" y="242.228" width="57.5" height="37.5" rx="14.75" stroke="#7E868C" stroke-opacity="0.1" stroke-width="2.5"/>
<g>
<rect x="57" y="61" width="1486" height="120" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="57.5" y="61.5" width="1485" height="119" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="57" y="354" width="157" height="92" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="57.5" y="354.5" width="156" height="91" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="262" y="354" width="204" height="92" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="262.5" y="354.5" width="203" height="91" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="488" y="354" width="188" height="92" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="488.5" y="354.5" width="187" height="91" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="709.5" y="354" width="172" height="92" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="710" y="354.5" width="171" height="91" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="903" y="354" width="230" height="92" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="903.5" y="354.5" width="229" height="91" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="1151" y="354" width="170" height="92" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="1151.5" y="354.5" width="169" height="91" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="1379" y="354" width="150" height="92" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="1379.5" y="354.5" width="149" height="91" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="57" y="585.792" width="1264" height="120" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="57.5" y="586.292" width="1263" height="119" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="1379" y="585.792" width="150" height="120" rx="21" fill="white" shape-rendering="crispEdges"/>
<rect x="1379.5" y="586.292" width="149" height="119" rx="20.5" stroke="#C1C8CD" shape-rendering="crispEdges"/>
</g>
<text x="800" y="102" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="30" font-weight="700" letter-spacing="1" fill="#11181C">Envoy</text>
<text x="800" y="142" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="22" font-weight="400" fill="#11181C">envoyproxy.io</text>
<text x="689" y="626.8" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="30" font-weight="700" letter-spacing="1" fill="#11181C">Postgres</text>
<text x="689" y="666.8" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="22" font-weight="400" fill="#11181C">postgresql.org</text>
<text x="135.5" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#11181C">Auth</text>
<text x="364" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#11181C">PostgREST</text>
<text x="582" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#11181C">Realtime</text>
<text x="795.5" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#11181C">Storage</text>
<text x="1018" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#11181C">Edge Runtime</text>
<text x="1236" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#11181C">pg-meta</text>
<text x="1454" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#11181C">Studio</text>
<text x="146" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="white">/auth</text>
<text x="364" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="white">/rest</text>
<text x="582" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="white">/realtime</text>
<text x="800" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="white">/storage</text>
<text x="1018" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="white">/functions</text>
<text x="1236" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="white">/pg</text>
<text x="1454" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="white">/</text>
<text x="1454" y="645.792" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="24" font-weight="700" fill="#11181C">Supavisor</text>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,114 @@
<svg width="1600" height="767" viewBox="0 0 1600 767" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M146.707 353.971C146.317 354.361 145.683 354.361 145.293 353.971L138.929 347.607C138.538 347.216 138.538 346.583 138.929 346.193C139.319 345.802 139.953 345.802 140.343 346.193L146 351.849L151.657 346.193C152.047 345.802 152.68 345.802 153.071 346.193C153.462 346.583 153.462 347.216 153.071 347.607L146.707 353.971ZM147 121L147 353.264L145 353.264L145 121L147 121Z" fill="#EDEDED"/>
<path d="M364.707 353.971C364.317 354.361 363.683 354.361 363.293 353.971L356.929 347.607C356.538 347.216 356.538 346.583 356.929 346.193C357.319 345.802 357.953 345.802 358.343 346.193L364 351.849L369.657 346.193C370.047 345.802 370.681 345.802 371.071 346.193C371.462 346.583 371.462 347.216 371.071 347.607L364.707 353.971ZM365 121L365 353.264L363 353.264L363 121L365 121Z" fill="#EDEDED"/>
<path d="M582.707 353.971C582.317 354.361 581.683 354.361 581.293 353.971L574.929 347.607C574.538 347.216 574.538 346.583 574.929 346.193C575.319 345.802 575.953 345.802 576.343 346.193L582 351.849L587.657 346.193C588.047 345.802 588.681 345.802 589.071 346.193C589.462 346.583 589.462 347.216 589.071 347.607L582.707 353.971ZM583 121L583 353.264L581 353.264L581 121L583 121Z" fill="#EDEDED"/>
<path d="M800.707 353.971C800.317 354.361 799.683 354.361 799.293 353.971L792.929 347.607C792.538 347.216 792.538 346.583 792.929 346.193C793.319 345.802 793.953 345.802 794.343 346.193L800 351.849L805.657 346.193C806.047 345.802 806.681 345.802 807.071 346.193C807.462 346.583 807.462 347.216 807.071 347.607L800.707 353.971ZM801 121L801 353.264L799 353.264L799 121L801 121Z" fill="#EDEDED"/>
<path d="M1018.71 353.971C1018.32 354.361 1017.68 354.361 1017.29 353.971L1010.93 347.607C1010.54 347.216 1010.54 346.583 1010.93 346.193C1011.32 345.802 1011.95 345.802 1012.34 346.193L1018 351.849L1023.66 346.193C1024.05 345.802 1024.68 345.802 1025.07 346.193C1025.46 346.583 1025.46 347.216 1025.07 347.607L1018.71 353.971ZM1019 121L1019 353.264L1017 353.264L1017 121L1019 121Z" fill="#EDEDED"/>
<path d="M1236.71 353.971C1236.32 354.361 1235.68 354.361 1235.29 353.971L1228.93 347.607C1228.54 347.216 1228.54 346.583 1228.93 346.193C1229.32 345.802 1229.95 345.802 1230.34 346.193L1236 351.849L1241.66 346.193C1242.05 345.802 1242.68 345.802 1243.07 346.193C1243.46 346.583 1243.46 347.216 1243.07 347.607L1236.71 353.971ZM1237 121L1237 353.264L1235 353.264L1235 121L1237 121Z" fill="#EDEDED"/>
<path d="M1454.71 353.971C1454.32 354.361 1453.68 354.361 1453.29 353.971L1446.93 347.607C1446.54 347.216 1446.54 346.583 1446.93 346.193C1447.32 345.802 1447.95 345.802 1448.34 346.193L1454 351.849L1459.66 346.193C1460.05 345.802 1460.68 345.802 1461.07 346.193C1461.46 346.583 1461.46 347.216 1461.07 347.607L1454.71 353.971ZM1455 121L1455 353.264L1453 353.264L1453 121L1455 121Z" fill="#EDEDED"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764ZM145 400L145 585.057L147 585.057L147 400L145 400Z" fill="#EDEDED"/>
<path d="M363.293 585.764C363.683 586.154 364.317 586.154 364.707 585.764L371.071 579.4C371.462 579.009 371.462 578.376 371.071 577.986C370.68 577.595 370.047 577.595 369.657 577.986L364 583.642L358.343 577.986C357.953 577.595 357.319 577.595 356.929 577.986C356.538 578.376 356.538 579.009 356.929 579.4L363.293 585.764ZM363 400L363 585.057L365 585.057L365 400L363 400Z" fill="#EDEDED"/>
<path d="M581.293 585.764C581.683 586.154 582.317 586.154 582.707 585.764L589.071 579.4C589.462 579.009 589.462 578.376 589.071 577.986C588.68 577.595 588.047 577.595 587.657 577.986L582 583.642L576.343 577.986C575.953 577.595 575.319 577.595 574.929 577.986C574.538 578.376 574.538 579.009 574.929 579.4L581.293 585.764ZM581 400L581 585.057L583 585.057L583 400L581 400Z" fill="#EDEDED"/>
<path d="M799.293 585.764C799.683 586.154 800.317 586.154 800.707 585.764L807.071 579.4C807.462 579.009 807.462 578.376 807.071 577.986C806.68 577.595 806.047 577.595 805.657 577.986L800 583.642L794.343 577.986C793.953 577.595 793.319 577.595 792.929 577.986C792.538 578.376 792.538 579.009 792.929 579.4L799.293 585.764ZM799 400L799 585.057L801 585.057L801 400L799 400Z" fill="#EDEDED"/>
<path d="M1017.29 585.764C1017.68 586.154 1018.32 586.154 1018.71 585.764L1025.07 579.4C1025.46 579.009 1025.46 578.376 1025.07 577.986C1024.68 577.595 1024.05 577.595 1023.66 577.986L1018 583.642L1012.34 577.986C1011.95 577.595 1011.32 577.595 1010.93 577.986C1010.54 578.376 1010.54 579.009 1010.93 579.4L1017.29 585.764ZM1017 400L1017 585.057L1019 585.057L1019 400L1017 400Z" fill="#EDEDED"/>
<path d="M1235.29 585.764C1235.68 586.154 1236.32 586.154 1236.71 585.764L1243.07 579.4C1243.46 579.009 1243.46 578.376 1243.07 577.986C1242.68 577.595 1242.05 577.595 1241.66 577.986L1236 583.642L1230.34 577.986C1229.95 577.595 1229.32 577.595 1228.93 577.986C1228.54 578.376 1228.54 579.009 1228.93 579.4L1235.29 585.764ZM1235 400L1235 585.057L1237 585.057L1237 400L1235 400Z" fill="#EDEDED"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764Z" transform="translate(1175 -185.764) rotate(90 146 585.764)" fill="#EDEDED"/>
<path d="M1322 399L1400 399L1400 401L1322 401Z" fill="#EDEDED"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764Z" transform="translate(1175 39.236) rotate(90 146 585.764)" fill="#EDEDED"/>
<path d="M1322 624L1400 624L1400 626L1322 626Z" fill="#EDEDED"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764Z" transform="translate(1175 60.236) rotate(90 146 585.764)" fill="#EDEDED"/>
<path d="M1322 645L1400 645L1400 647L1322 647Z" fill="#EDEDED"/>
<path d="M145.293 585.764C145.683 586.154 146.317 586.154 146.707 585.764L153.071 579.4C153.462 579.009 153.462 578.376 153.071 577.986C152.68 577.595 152.047 577.595 151.657 577.986L146 583.642L140.343 577.986C139.953 577.595 139.319 577.595 138.929 577.986C138.538 578.376 138.538 579.009 138.929 579.4L145.293 585.764Z" transform="translate(1175 81.236) rotate(90 146 585.764)" fill="#EDEDED"/>
<path d="M1322 666L1400 666L1400 668L1322 668Z" fill="#EDEDED"/>
<rect x="91.4999" y="240.978" width="109" height="40" rx="16" fill="#EDEDED"/>
<rect x="92.7499" y="242.228" width="106.5" height="37.5" rx="14.75" stroke="#4D4D4D" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="309.5" y="240.978" width="109" height="40" rx="16" fill="#EDEDED"/>
<rect x="310.75" y="242.228" width="106.5" height="37.5" rx="14.75" stroke="#4D4D4D" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="496" y="240.978" width="172" height="40" rx="16" fill="#EDEDED"/>
<rect x="497.25" y="242.228" width="169.5" height="37.5" rx="14.75" stroke="#4D4D4D" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="722" y="240.978" width="156" height="40" rx="16" fill="#EDEDED"/>
<rect x="723.25" y="242.228" width="153.5" height="37.5" rx="14.75" stroke="#4D4D4D" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="924.5" y="240.978" width="187" height="40" rx="16" fill="#EDEDED"/>
<rect x="925.75" y="242.228" width="184.5" height="37.5" rx="14.75" stroke="#4D4D4D" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="1197" y="240.978" width="78" height="40" rx="16" fill="#EDEDED"/>
<rect x="1198.25" y="242.228" width="75.5" height="37.5" rx="14.75" stroke="#4D4D4D" stroke-opacity="0.1" stroke-width="2.5"/>
<rect x="1424" y="240.978" width="60" height="40" rx="16" fill="#EDEDED"/>
<rect x="1425.25" y="242.228" width="57.5" height="37.5" rx="14.75" stroke="#4D4D4D" stroke-opacity="0.1" stroke-width="2.5"/>
<g>
<rect x="57" y="61" width="1486" height="120" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="57.5" y="61.5" width="1485" height="119" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="57" y="354" width="157" height="92" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="57.5" y="354.5" width="156" height="91" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="262" y="354" width="204" height="92" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="262.5" y="354.5" width="203" height="91" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="488" y="354" width="188" height="92" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="488.5" y="354.5" width="187" height="91" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="709.5" y="354" width="172" height="92" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="710" y="354.5" width="171" height="91" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="903" y="354" width="230" height="92" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="903.5" y="354.5" width="229" height="91" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="1151" y="354" width="170" height="92" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="1151.5" y="354.5" width="169" height="91" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="1379" y="354" width="150" height="92" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="1379.5" y="354.5" width="149" height="91" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="57" y="585.792" width="1264" height="120" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="57.5" y="586.292" width="1263" height="119" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<g>
<rect x="1379" y="585.792" width="150" height="120" rx="21" fill="#121212" shape-rendering="crispEdges"/>
<rect x="1379.5" y="586.292" width="149" height="119" rx="20.5" stroke="#4D4D4D" shape-rendering="crispEdges"/>
</g>
<text x="800" y="102" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="30" font-weight="700" letter-spacing="1" fill="#EDEDED">Envoy</text>
<text x="800" y="142" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="22" font-weight="400" fill="#EDEDED">envoyproxy.io</text>
<text x="689" y="626.8" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="30" font-weight="700" letter-spacing="1" fill="#EDEDED">Postgres</text>
<text x="689" y="666.8" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="22" font-weight="400" fill="#EDEDED">postgresql.org</text>
<text x="135.5" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#EDEDED">Auth</text>
<text x="364" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#EDEDED">PostgREST</text>
<text x="582" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#EDEDED">Realtime</text>
<text x="795.5" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#EDEDED">Storage</text>
<text x="1018" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#EDEDED">Edge Runtime</text>
<text x="1236" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#EDEDED">pg-meta</text>
<text x="1454" y="400" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="26" font-weight="700" fill="#EDEDED">Studio</text>
<text x="146" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="#1E1E1E">/auth</text>
<text x="364" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="#1E1E1E">/rest</text>
<text x="582" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="#1E1E1E">/realtime</text>
<text x="800" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="#1E1E1E">/storage</text>
<text x="1018" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="#1E1E1E">/functions</text>
<text x="1236" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="#1E1E1E">/pg</text>
<text x="1454" y="261" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="20" font-weight="700" fill="#1E1E1E">/</text>
<text x="1454" y="645.792" text-anchor="middle" dominant-baseline="middle" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" font-size="24" font-weight="700" fill="#EDEDED">Supavisor</text>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB