Public Assets and Configuration
The public directory serves as the root for static assets and configuration files that are directly exposed to the web server. This section details the web application manifest, search engine crawler directives, and the custom error page configuration, which collectively define the application’s metadata, accessibility, and SEO behavior.
Web App Manifest
Section titled “Web App Manifest”The manifest includes a single icon source: /favicon.svg, which is an SVG image suitable for any size and supports both maskable and any-purpose usage 1. The application is categorized under “education”, “technology”, and “productivity”, and supports any device orientation.
Crawler Directives
Section titled “Crawler Directives”To prevent server overload, a Crawl-delay of 1 second is specified 2. Although currently commented out, the file reserves paths for future disallow rules, specifically /admin/ and /_astro/.
SEO and Error Handling
Section titled “SEO and Error Handling”The page layout includes a prominent “404” header and a message stating that the page doesn’t exist or has been moved 3. Users are provided with two primary navigation options: a button to “Go Home” (linking to /) and a button to “View Documentation” (linking to /documentation). Additionally, the page highlights three popular pages to assist navigation: “Hardware Build” (/hardware), “Kubernetes Cluster” (/kubernetes-cluster), and “The Journey” (/journey).
{
"name": "SDDC.info - Home Lab Automation",
"short_name": "SDDC.info",
"description": "Home lab automation and software-defined datacenter documentation",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#3b82f6",
"icons": [
{
"src": "/favicon.svg",
"sizes": "any",
"type": "image/svg+xml",
"purpose": "any maskable"
}
],
"categories": ["education", "technology", "productivity"],
"orientation": "any"
}
# robots.txt for sddc.info
User-agent: *
Allow: /
# Sitemaps
Sitemap: https://sddc.info/sitemap-index.xml
# Crawl-delay (optional, helps prevent server overload)
Crawl-delay: 1
# Disallow admin/internal paths (if any exist in future)
# Disallow: /admin/
# Disallow: /_astro/
---
import Layout from '../layouts/Layout.astro';
const title = '404 - Page Not Found | sddc.info';
const description = 'The page you are looking for could not be found.';
const canonicalURL = '/404';
---
<Layout title={title} description={description} canonicalURL={canonicalURL}>
<div class="glass-card p-8 text-center">
<h1 class="text-6xl font-bold text-primary-600 dark:text-primary-400 mb-4">404</h1>
<h2 class="text-3xl font-bold text-gray-900 dark:text-white mb-4">Page Not Found</h2>
<p class="text-gray-700 dark:text-gray-300 mb-8 max-w-2xl mx-auto">
The page you're looking for doesn't exist or has been moved. Let's get you back on track.
</p>
<div class="flex flex-col sm:flex-row gap-4 justify-center items-center mb-8">
<a
href="/"
class="px-6 py-3 bg-gradient-to-r from-primary-600 to-primary-700 hover:from-primary-700 hover:to-primary-800 text-white font-semibold rounded-lg transition-all duration-200 hover:shadow-lg"
>
Go Home
</a>
<a
href="/documentation"
class="px-6 py-3 bg-gray-200 dark:bg-gray-700 hover:bg-gray-300 dark:hover:bg-gray-600 text-gray-900 dark:text-white font-semibold rounded-lg transition-all duration-200"
>
View Documentation
</a>
</div>
<div class="mt-12">
<h3 class="text-xl font-bold text-gray-900 dark:text-white mb-4">Popular Pages</h3>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 max-w-4xl mx-auto">
<a href="/hardware" class="stat-card text-left hover:shadow-lg transition-shadow">
<h4 class="font-bold text-primary-600 dark:text-primary-400 mb-2">Hardware Build</h4>
<p class="text-sm text-gray-600 dark:text-gray-300">Explore the compact datacenter setup</p>
</a>
<a href="/kubernetes-cluster" class="stat-card text-left hover:shadow-lg transition-shadow">
<h4 class="font-bold text-primary-600 dark:text-primary-400 mb-2">Kubernetes Cluster</h4>