Files
Homepage/index.html

75 lines
2.8 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Services Homepage</title>
<link rel="stylesheet" href="/styles.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/simplex-noise/2.4.0/simplex-noise.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
</head>
<body>
<canvas id="galaxy-canvas"></canvas>
<div id="background-overlay"></div>
<header>
<h1>My Services</h1>
<p class="subtitle">Quick links to the commonly used containers on this host</p>
<div class="search-container">
<input type="text" id="search-input" placeholder="🔍 Search services..." />
</div>
</header>
<main>
<section id="services-container">
<!-- Service groups will be populated dynamically from /services.xml -->
</section>
<section class="notes" id="readme-section">
<div id="readme-content">Loading documentation...</div>
</section>
</main>
<footer>
<small>Generated: static homepage — served by nginx in a container. Edit and rebuild to update.</small>
</footer>
<!-- JavaScript modules -->
<script src="/js/galaxy-background.js"></script>
<script src="/js/themes.js"></script>
<script src="/js/services-loader.js"></script>
<script src="/js/drag-drop.js"></script>
<script src="/js/collapsible-groups.js"></script>
<script src="/js/search.js"></script>
<script src="/js/keyboard-nav.js"></script>
<script src="/js/readme-loader.js"></script>
<script src="/js/export-import.js"></script>
<script src="/js/widgets.js"></script>
<!-- Initialize features after DOM is loaded -->
<script>
window.addEventListener('DOMContentLoaded', () => {
// Wait for services to be loaded
const checkServicesLoaded = setInterval(() => {
if (window.servicesData && window.servicesData.allServices.length > 0) {
clearInterval(checkServicesLoaded);
// Initialize all features
if (window.themesModule) window.themesModule.init();
if (window.dragDropModule) {
window.dragDropModule.init();
window.dragDropModule.applySavedOrder();
}
if (window.collapsibleGroupsModule) window.collapsibleGroupsModule.init();
if (window.importExportModule) window.importExportModule.init();
if (window.widgetsModule) window.widgetsModule.init();
}
}, 100);
// Timeout after 5 seconds
setTimeout(() => clearInterval(checkServicesLoaded), 5000);
});
</script>
</body>
</html>