feat: Infrastructure section with 6 sub-sections (Builds, Databases, Services, Environment, Domains, Logs)
- Sidebar Infrastructure replaced with 6 named rows linking to /infrastructure?tab= - New /infrastructure page with left sub-nav and per-tab content panels: Builds — lists deployed Coolify apps with live status Databases — coming soon placeholder Services — coming soon placeholder Environment — variable table with masked values (scaffold) Domains — lists configured domains with SSL status Logs — dark terminal panel, ready to stream - Dim state on rows reflects whether data exists (e.g. no domains = dim) Made-with: Cursor
This commit is contained in:
@@ -350,21 +350,48 @@ export function VIBNSidebar({ workspace }: VIBNSidebarProps) {
|
||||
|
||||
{/* ── Infrastructure ── */}
|
||||
<SectionHeading label="Infrastructure" collapsed={collapsed} />
|
||||
{infraApps.length > 0 ? (
|
||||
infraApps.map(app => (
|
||||
<SectionRow
|
||||
key={app.name}
|
||||
icon="◈"
|
||||
label={app.domain ?? app.name}
|
||||
href={app.domain ? `https://${app.domain}` : undefined}
|
||||
collapsed={collapsed}
|
||||
/>
|
||||
))
|
||||
) : project?.giteaRepo ? (
|
||||
<SectionRow icon="◈" label="Gitea connected" href={project.giteaRepoUrl} collapsed={collapsed} />
|
||||
) : (
|
||||
<SectionRow icon="◈" label="Not deployed" dim collapsed={collapsed} />
|
||||
)}
|
||||
<SectionRow
|
||||
icon="⬡"
|
||||
label="Builds"
|
||||
href={`${base}/infrastructure?tab=builds`}
|
||||
dim={infraApps.length === 0}
|
||||
collapsed={collapsed}
|
||||
/>
|
||||
<SectionRow
|
||||
icon="◫"
|
||||
label="Databases"
|
||||
href={`${base}/infrastructure?tab=databases`}
|
||||
dim
|
||||
collapsed={collapsed}
|
||||
/>
|
||||
<SectionRow
|
||||
icon="◎"
|
||||
label="Services"
|
||||
href={`${base}/infrastructure?tab=services`}
|
||||
dim
|
||||
collapsed={collapsed}
|
||||
/>
|
||||
<SectionRow
|
||||
icon="≡"
|
||||
label="Environment"
|
||||
href={`${base}/infrastructure?tab=environment`}
|
||||
dim
|
||||
collapsed={collapsed}
|
||||
/>
|
||||
<SectionRow
|
||||
icon="◬"
|
||||
label="Domains"
|
||||
href={`${base}/infrastructure?tab=domains`}
|
||||
dim={!infraApps.some(a => a.domain)}
|
||||
collapsed={collapsed}
|
||||
/>
|
||||
<SectionRow
|
||||
icon="≈"
|
||||
label="Logs"
|
||||
href={`${base}/infrastructure?tab=logs`}
|
||||
dim={infraApps.length === 0}
|
||||
collapsed={collapsed}
|
||||
/>
|
||||
|
||||
<SectionDivider />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user