+
+
+
+
+ {overview.status.label}
+
+
+
+ {formatInstanceSummary(overview)}
-
- {formatInstanceSummary(overview)}
-
+ {overview.serverSummaries.length === 0 ? (
+
No servers configured
+ ) : (
+ overview.serverSummaries.map((server) => (
+
+
+ {server.configured > 0
+ ? `${server.running}/${server.configured} running`
+ : `${server.running} running`}
+
+
+ ))
+ )}
- {overview.serverSummaries.length === 0 ? (
-
No servers configured
- ) : (
- overview.serverSummaries.map((server) => (
-
-
- {server.configured > 0
- ? `${server.running}/${server.configured} running`
- : `${server.running} running`}
-
-
- ))
- )}
+ {service.startCommand ? (
+
Custom
+ ) : null}
+ {service.healthCheckCmd ? (
+
Configured
+ ) : null}
+ {hasResourceLimits ? (
+
{formatResources(service)}
+ ) : null}
@@ -513,21 +519,14 @@ function ServiceConfigPanel({
function ConfigRow({
label,
children,
- muted = false,
}: {
label: string;
children: ReactNode;
- muted?: boolean;
}) {
return (
{label}
-
+
{children}
@@ -566,7 +565,7 @@ function EndpointPrimary({ endpoint }: { endpoint: EndpointItem }) {
href={endpoint.href}
target="_blank"
rel="noopener noreferrer"
- className="hover:text-primary"
+ className="text-primary underline decoration-primary/40 underline-offset-4 transition-colors hover:decoration-primary focus-visible:decoration-primary focus-visible:outline-none"
>
{endpoint.label}
diff --git a/web/db/queries.ts b/web/db/queries.ts
index 7f70e81b..0144dc7c 100644
--- a/web/db/queries.ts
+++ b/web/db/queries.ts
@@ -1,4 +1,5 @@
import { and, eq, isNotNull, isNull } from "drizzle-orm";
+import { cache } from "react";
import { db } from "@/db";
import {
deployments,
@@ -96,7 +97,7 @@ export async function listServers() {
return db.select().from(servers).orderBy(servers.createdAt);
}
-export async function getServerDetails(id: string) {
+export const getServerDetails = cache(async (id: string) => {
const serverResults = await db
.select({
id: servers.id,
@@ -126,7 +127,7 @@ export async function getServerDetails(id: string) {
const server = serverResults[0];
return server ? { ...server, healthStats: null } : null;
-}
+});
export async function getClusterHealth() {
const allServers = await db