diff --git a/site/src/AppRouter.tsx b/site/src/AppRouter.tsx
index 99cbbb960b..28a3ca2381 100644
--- a/site/src/AppRouter.tsx
+++ b/site/src/AppRouter.tsx
@@ -95,7 +95,10 @@ const GitAuthSettingsPage = lazy(
),
)
const NetworkSettingsPage = lazy(
- () => import("./pages/DeploySettingsPage/NetworkSettingsPage"),
+ () =>
+ import(
+ "./pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPage"
+ ),
)
const GitAuthPage = lazy(() => import("./pages/GitAuthPage/GitAuthPage"))
const TemplateVersionPage = lazy(
diff --git a/site/src/pages/DeploySettingsPage/NetworkSettingsPage.tsx b/site/src/pages/DeploySettingsPage/NetworkSettingsPage.tsx
deleted file mode 100644
index 79f354ae6e..0000000000
--- a/site/src/pages/DeploySettingsPage/NetworkSettingsPage.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import { useDeploySettings } from "components/DeploySettingsLayout/DeploySettingsLayout"
-import { Header } from "components/DeploySettingsLayout/Header"
-import OptionsTable from "components/DeploySettingsLayout/OptionsTable"
-import React from "react"
-import { Helmet } from "react-helmet-async"
-import { pageTitle } from "util/page"
-
-const NetworkSettingsPage: React.FC = () => {
- const { deploymentConfig: deploymentConfig } = useDeploySettings()
-
- return (
- <>
-
- {pageTitle("Network Settings")}
-
-
-
-
-
- >
- )
-}
-
-export default NetworkSettingsPage
diff --git a/site/src/pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPage.tsx b/site/src/pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPage.tsx
new file mode 100644
index 0000000000..ac60b4ff76
--- /dev/null
+++ b/site/src/pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPage.tsx
@@ -0,0 +1,21 @@
+import { useDeploySettings } from "components/DeploySettingsLayout/DeploySettingsLayout"
+import React from "react"
+import { Helmet } from "react-helmet-async"
+import { pageTitle } from "util/page"
+import { NetworkSettingsPageView } from "./NetworkSettingsPageView"
+
+const NetworkSettingsPage: React.FC = () => {
+ const { deploymentConfig: deploymentConfig } = useDeploySettings()
+
+ return (
+ <>
+
+ {pageTitle("Network Settings")}
+
+
+
+ >
+ )
+}
+
+export default NetworkSettingsPage
diff --git a/site/src/pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPageView.stories.tsx b/site/src/pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPageView.stories.tsx
new file mode 100644
index 0000000000..5d6d78990c
--- /dev/null
+++ b/site/src/pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPageView.stories.tsx
@@ -0,0 +1,50 @@
+import { ComponentMeta, Story } from "@storybook/react"
+import {
+ NetworkSettingsPageView,
+ NetworkSettingsPageViewProps,
+} from "./NetworkSettingsPageView"
+
+export default {
+ title: "pages/NetworkSettingsPageView",
+ component: NetworkSettingsPageView,
+ argTypes: {
+ deploymentConfig: {
+ defaultValue: {
+ derp: {
+ server: {
+ enable: {
+ name: "DERP Server Enable",
+ usage:
+ "Whether to enable or disable the embedded DERP relay server.",
+ value: true,
+ },
+ region_name: {
+ name: "DERP Server Region Name",
+ usage: "Region name that for the embedded DERP server.",
+ value: "aws-east",
+ },
+ stun_addresses: {
+ name: "DERP Server STUN Addresses",
+ usage:
+ "Addresses for STUN servers to establish P2P connections. Set empty to disable P2P connections.",
+ value: ["stun.l.google.com:19302", "stun.l.google.com:19301"],
+ },
+ },
+ config: {
+ url: {
+ name: "DERP Config URL",
+ usage:
+ "URL to fetch a DERP mapping on startup. See: https://tailscale.com/kb/1118/custom-derp-servers/",
+ value: "https://coder.com",
+ },
+ },
+ },
+ },
+ },
+ },
+} as ComponentMeta
+
+const Template: Story = (args) => (
+
+)
+export const Page = Template.bind({})
diff --git a/site/src/pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPageView.tsx b/site/src/pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPageView.tsx
new file mode 100644
index 0000000000..13ec4dde6b
--- /dev/null
+++ b/site/src/pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPageView.tsx
@@ -0,0 +1,28 @@
+import { DeploymentConfig } from "api/typesGenerated"
+import { Header } from "components/DeploySettingsLayout/Header"
+import OptionsTable from "components/DeploySettingsLayout/OptionsTable"
+
+export type NetworkSettingsPageViewProps = {
+ deploymentConfig: Pick
+}
+
+export const NetworkSettingsPageView = ({
+ deploymentConfig,
+}: NetworkSettingsPageViewProps): JSX.Element => (
+ <>
+
+
+
+ >
+)