diff --git a/site/e2e/pom/HealthzPage.ts b/site/e2e/pom/HealthzPage.ts
new file mode 100644
index 0000000000000..7a85ec38fb07b
--- /dev/null
+++ b/site/e2e/pom/HealthzPage.ts
@@ -0,0 +1,13 @@
+import { Locator, Page } from "@playwright/test"
+import { BasePom } from "./BasePom"
+
+export class HealthzPage extends BasePom {
+ constructor(baseURL: string | undefined, page: Page) {
+ super(baseURL, "/healthz", page)
+ }
+
+ getOk(): Locator {
+ const locator = this.page.locator("text=ok")
+ return locator
+ }
+}
diff --git a/site/e2e/tests/healthz.spec.ts b/site/e2e/tests/healthz.spec.ts
new file mode 100644
index 0000000000000..c58ede2503bd3
--- /dev/null
+++ b/site/e2e/tests/healthz.spec.ts
@@ -0,0 +1,8 @@
+import { test } from "@playwright/test"
+import { HealthzPage } from "../pom/HealthzPage"
+
+test("Healthz is available without authentication", async ({ baseURL, page }) => {
+ const healthzPage = new HealthzPage(baseURL, page)
+ await page.goto(healthzPage.url, { waitUntil: "networkidle" })
+ await healthzPage.getOk().waitFor({ state: "visible" })
+})
diff --git a/site/src/app.tsx b/site/src/app.tsx
index 51e0872b09eb5..0178b992b2018 100644
--- a/site/src/app.tsx
+++ b/site/src/app.tsx
@@ -14,6 +14,7 @@ import { ProjectsPage } from "./pages/projects"
import { ProjectPage } from "./pages/projects/[organization]/[project]"
import { CreateWorkspacePage } from "./pages/projects/[organization]/[project]/create"
import { WorkspacePage } from "./pages/workspaces/[workspace]"
+import { HealthzPage } from "./pages/healthz"
export const App: React.FC = () => {
return (
@@ -45,6 +46,7 @@ export const App: React.FC = () => {
} />
} />
+ } />
} />
diff --git a/site/src/pages/healthz.tsx b/site/src/pages/healthz.tsx
new file mode 100644
index 0000000000000..76b000e10261b
--- /dev/null
+++ b/site/src/pages/healthz.tsx
@@ -0,0 +1,8 @@
+import React from "react"
+
+/**
+ * HealthzPage is a page that is available without authentication that is used
+ * for reporting whether or not the Dashboard is online. It should be
+ * accessible by humans and services.
+ */
+export const HealthzPage: React.FC = () => ok