From c72c624daaa7030bb35001f4667bdf08a83e2ce0 Mon Sep 17 00:00:00 2001 From: "claude@clouddev1" Date: Tue, 9 Jun 2026 21:44:43 +0000 Subject: [PATCH] chore: bind website dev/preview server to IPv4 loopback (127.0.0.1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Astro/Vite's default localhost bind resolves to IPv6 ::1 on this host, which silently breaks `ssh -L 4321:127.0.0.1:4321` tunnels (they target IPv4). Pin server.host to 127.0.0.1 so dev/preview is reachable over an IPv4 loopback forward. Loopback-only — no network exposure. --- website/astro.config.mjs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 54728d6..5607bc0 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -8,6 +8,11 @@ import tailwindcss from '@tailwindcss/vite'; export default defineConfig({ // TODO(Phase B/SEO): set `site` to the production URL once the domain is // known — enables the sitemap and canonical/OG URLs. + // Bind the dev/preview server to IPv4 loopback. Astro/Vite's default + // `localhost` bind resolves to IPv6 `::1` here, which breaks SSH + // `-L 4321:127.0.0.1:4321` tunnels (they target IPv4). Pinning 127.0.0.1 + // keeps loopback-only access and makes tunnelling unambiguous. + server: { host: '127.0.0.1' }, integrations: [ starlight({ title: 'RDBMS Playground',