--- import { GLOBAL } from "../../lib/variables"; import Layout from "../../layouts/Layout.astro"; import Section from "../../components/common/Section.astro"; import SearchBar from "../../components/common/SearchBar.astro"; import StyleControls from "../../components/common/StyleControls.astro"; import CategorySection from "../../components/homelab/CategorySection.astro"; import ServiceCardSkeleton from "../../components/common/ServiceCardSkeleton.astro"; import SkeletonLoader from "../../components/common/SkeletonLoader.astro"; import SEO from "../../components/SEO.astro"; import StructuredData from "../../components/StructuredData.astro"; import { services } from "./services.ts"; // Count total services const totalServices = Object.values(services).reduce( (count, serviceList) => count + serviceList.length, 0 ); // Structured data for the homelab page const webpageData = { name: "Homelab Dashboard", description: `A collection of ${totalServices} self-hosted services and applications running on my personal homelab.`, url: `${GLOBAL.rootUrl}/homelab`, isPartOf: { "@type": "WebSite", "name": `${GLOBAL.username} • ${GLOBAL.shortDescription}`, "url": GLOBAL.rootUrl } }; ---

Homelab

No Results

{Object.entries(services).map(([category, apps]) => (
{Array.from({ length: apps.length || 4 }).map((_, i) => ( ))}
))}
{Object.entries(services).map(([category, apps]) => ( ))}