diff --git a/config/homepage/bookmarks.yaml b/config/homepage/bookmarks.yaml
new file mode 100644
index 0000000..199f96b
--- /dev/null
+++ b/config/homepage/bookmarks.yaml
@@ -0,0 +1,22 @@
+---
+- Dell & ATC:
+ - Dell Technologies:
+ - abbr: DT
+ href: https://www.delltechnologies.com/
+ - Forgejo Git:
+ - abbr: Git
+ href: http://atc-mgt01.dell-atc.lan:3001/
+ - Proxmox:
+ - abbr: PVE
+ href: https://10.0.10.65:8006/
+
+- RSS Feeds:
+ - TLDR Data Engineering:
+ - abbr: TLDR
+ href: https://tldr.tech/dataengineering/
+ - Confluent Blog:
+ - abbr: CF
+ href: https://www.confluent.io/blog/
+ - Apache Airflow:
+ - abbr: AF
+ href: https://airflow.apache.org/blog/
diff --git a/config/homepage/custom.css b/config/homepage/custom.css
index 71aa4ab..bc71978 100644
--- a/config/homepage/custom.css
+++ b/config/homepage/custom.css
@@ -1,201 +1,300 @@
-/* Refined Cyberpunk / Palantir Theme */
-@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&family=Montserrat:wght@400;600;700&display=swap');
+/* ATC Lakehouse — Palantir dark + Dell orange */
+@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
:root {
- --neon-blue: #00f3ff;
- --neon-purple: #9d00ff;
- --neon-green: #00ff66;
- --neon-pink: #ff007f;
- --neon-yellow: #ffea00;
- --neon-orange: #ff6600;
- --bg-dark: #050810;
- --card-bg-light: rgba(20, 27, 45, 0.85);
- --card-bg-dark: rgba(10, 15, 28, 0.6);
+ --bg-deep: #06080c;
+ --bg-main: #0a0e14;
+ --bg-card: #121820;
+ --bg-card-hover: #181f2a;
+ --border: rgba(74, 158, 255, 0.12);
+ --border-hover: rgba(232, 117, 42, 0.45);
+ --text: #e8ecf1;
+ --text-muted: #8b9cb3;
+ --accent-blue: #4a9eff;
+ --accent-orange: #e8752a;
+ --accent-orange-glow: rgba(232, 117, 42, 0.25);
+ --dell-blue: #007db8;
+}
+
+* {
+ font-family: 'Inter', system-ui, sans-serif !important;
}
body {
- background-color: var(--bg-dark) !important;
- background-image:
- radial-gradient(circle at 20% 40%, rgba(0, 243, 255, 0.05) 0%, transparent 50%),
- radial-gradient(circle at 80% 60%, rgba(157, 0, 255, 0.05) 0%, transparent 50%) !important;
- font-family: 'Montserrat', sans-serif !important;
- color: #f1f5f9 !important;
- line-height: 1.5;
+ background: radial-gradient(ellipse 120% 80% at 50% -20%, rgba(0, 125, 184, 0.08), transparent),
+ radial-gradient(ellipse 80% 50% at 100% 0%, rgba(232, 117, 42, 0.06), transparent),
+ var(--bg-main) !important;
+ color: var(--text) !important;
+ min-height: 100vh;
}
-/* Hide default homepage elements that make it look standard */
-header { border-bottom: 1px solid rgba(255,255,255,0.03) !important; }
+/* ── Header / widgets row ── */
+#information-widgets,
+.information-widget-container {
+ background: linear-gradient(180deg, #0d1219 0%, rgba(18, 24, 32, 0.98) 100%) !important;
+ border-bottom: 2px solid transparent !important;
+ border-image: linear-gradient(90deg, var(--dell-blue), var(--accent-orange), var(--dell-blue)) 1 !important;
+ padding: 14px 28px !important;
+}
+
+header {
+ background: transparent !important;
+ border: none !important;
+}
+
+header h1 {
+ font-size: 1.35rem !important;
+ font-weight: 700 !important;
+ background: linear-gradient(90deg, #fff 30%, var(--accent-orange) 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+.information-widget-greeting {
+ color: var(--text) !important;
+}
+
+.information-widget-greeting .text-theme-800 {
+ color: var(--accent-orange) !important;
+ font-weight: 600 !important;
+}
+
+.information-widget-greeting .text-theme-500 {
+ color: var(--text-muted) !important;
+ font-size: 0.75rem !important;
+}
+
+.information-widget-logo img,
+.information-widget-logo svg {
+ max-height: 48px !important;
+ width: auto !important;
+ filter: drop-shadow(0 0 14px var(--accent-orange-glow));
+}
+
+.information-widget-search input {
+ background: var(--bg-deep) !important;
+ border: 1px solid var(--border) !important;
+ border-radius: 8px !important;
+ color: var(--text) !important;
+}
+
+.information-widget-search input:focus {
+ border-color: var(--accent-orange) !important;
+ box-shadow: 0 0 0 2px var(--accent-orange-glow) !important;
+}
+
+main {
+ padding: 24px 28px 48px !important;
+ max-width: 1720px !important;
+ margin: 0 auto !important;
+}
+
+.services-group {
+ margin-bottom: 32px !important;
+}
+
+.services-group > div:first-child,
+.services-group h2 {
+ font-size: 0.72rem !important;
+ font-weight: 700 !important;
+ text-transform: uppercase !important;
+ letter-spacing: 0.14em !important;
+ color: var(--accent-orange) !important;
+ margin-bottom: 14px !important;
+ padding-bottom: 8px !important;
+ border-bottom: 2px solid transparent !important;
+ border-image: linear-gradient(90deg, var(--accent-orange), var(--accent-blue), transparent) 1 !important;
+}
+
+.services-group ul,
+.services-group > div:last-child {
+ display: grid !important;
+ grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)) !important;
+ gap: 12px !important;
+ list-style: none !important;
+ padding: 0 !important;
+ margin: 0 !important;
+}
+
+/* Database sections — wider tiles, always show connection strings */
+.services-group:has(h2) ul .service:has(.service-description) {
+ min-height: 168px !important;
+}
-/* The Cards - Sleek and Tight */
.service {
- background: linear-gradient(135deg, var(--card-bg-light) 0%, var(--card-bg-dark) 100%) !important;
- border: 1px solid rgba(255, 255, 255, 0.05) !important;
- border-left: 3px solid rgba(255, 255, 255, 0.1) !important;
- border-radius: 6px 12px 12px 6px !important;
- padding: 12px 16px !important;
- margin-bottom: 16px !important;
- transition: all 0.3s ease !important;
- box-shadow: 0 4px 12px rgba(0,0,0,0.4) !important;
- backdrop-filter: blur(10px) !important;
+ flex-direction: column !important;
+ align-items: center !important;
+ text-align: center !important;
+ background: var(--bg-card) !important;
+ border: 1px solid var(--border) !important;
+ border-radius: 12px !important;
+ padding: 16px 12px 14px !important;
+ min-height: 132px !important;
+ transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s !important;
+ position: relative !important;
+ overflow: visible !important;
+}
+
+.service::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 2px;
+ background: linear-gradient(90deg, var(--dell-blue), var(--accent-orange));
+ opacity: 0;
+ transition: opacity 0.2s;
+ border-radius: 12px 12px 0 0;
}
.service:hover {
- transform: translateY(-2px) translateX(4px) !important;
- background: linear-gradient(135deg, rgba(30, 41, 65, 0.95) 0%, rgba(15, 23, 42, 0.8) 100%) !important;
- border-color: rgba(255, 255, 255, 0.15) !important;
+ background: var(--bg-card-hover) !important;
+ border-color: var(--border-hover) !important;
+ box-shadow: 0 8px 28px rgba(0, 0, 0, 0.4), 0 0 24px var(--accent-orange-glow) !important;
+ transform: translateY(-4px) !important;
+ z-index: 2 !important;
}
-/* Typography */
-.service-name {
- font-family: 'Fira Code', monospace !important;
- font-size: 1.05rem !important;
- font-weight: 600 !important;
- letter-spacing: 0.5px !important;
- color: #ffffff !important;
+.service:hover::before {
+ opacity: 1;
}
-.service-description {
- font-size: 0.8rem !important;
- color: #94a3b8 !important;
- margin-top: 4px !important;
-}
-
-/* THE ICONS - Smaller and perfectly proportioned */
.service-icon {
- width: 3.2rem !important;
- height: 3.2rem !important;
- min-width: 3.2rem !important;
- background: rgba(0, 0, 0, 0.25) !important;
- border-radius: 10px !important;
+ width: 52px !important;
+ height: 52px !important;
+ min-width: 52px !important;
+ margin: 0 0 10px 0 !important;
padding: 8px !important;
- margin-right: 16px !important;
+ border-radius: 12px !important;
+ background: linear-gradient(145deg, rgba(0, 125, 184, 0.12), rgba(232, 117, 42, 0.08)) !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
- border: 1px solid rgba(255, 255, 255, 0.08) !important;
- transition: all 0.3s ease !important;
- box-shadow: inset 0 0 10px rgba(0,0,0,0.5) !important;
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.07);
}
-.service-icon img,
+.service-icon img,
.service-icon svg {
width: 100% !important;
height: 100% !important;
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.6)) saturate(130%) brightness(1.1) !important;
- transition: all 0.3s ease !important;
+ object-fit: contain !important;
+ filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.35));
}
-.service:hover .service-icon {
- background: rgba(255, 255, 255, 0.05) !important;
- transform: scale(1.08) !important;
- box-shadow: inset 0 0 15px rgba(255,255,255,0.05) !important;
+.service-name {
+ font-size: 0.84rem !important;
+ font-weight: 600 !important;
+ color: var(--text) !important;
+ line-height: 1.25 !important;
+ margin-bottom: 6px !important;
+ width: 100% !important;
}
-.service:hover .service-icon svg,
-.service:hover .service-icon img {
- filter: drop-shadow(0 0 8px currentColor) saturate(150%) brightness(1.2) !important;
+.service-description {
+ font-family: 'JetBrains Mono', monospace !important;
+ font-size: 0.56rem !important;
+ line-height: 1.5 !important;
+ color: #7d8fa8 !important;
+ white-space: pre-wrap !important;
+ word-break: break-word !important;
+ width: 100% !important;
+ text-align: left !important;
+ padding: 0 4px !important;
}
-/* Icon colors based on services.yaml */
-.mdi-apache-kafka, .si-apachekafka { color: #E02014 !important; }
-.mdi-database-sync, .si-apachedebezium { color: #4ECDC4 !important; }
-.mdi-star-four-points, .si-apachespark { color: #E25A1C !important; }
-.si-trino { color: #DD00A1 !important; }
-.si-mongodb { color: #47A248 !important; }
-.si-postgresql { color: #4169E1 !important; }
-.si-apachecassandra { color: #1287B1 !important; }
-.si-mysql { color: #4479A1 !important; }
-.si-neo4j { color: #008CC1 !important; }
-.mdi-database-cloud, .si-minio { color: #00d2ff !important; }
-.mdi-server-network { color: #b500ff !important; }
-.si-apacheairflow { color: #017CEE !important; }
-.mdi-chart-bar, .si-apachesuperset { color: #6c5ce7 !important; }
-.si-elasticsearch { color: #005571 !important; }
-.si-kibana { color: #F04E98 !important; }
-.si-grafana { color: #F46800 !important; }
-.si-proxmox { color: #E57000 !important; }
-.si-git { color: #F05032 !important; }
-.mdi-account-group, .si-openldap { color: #0984e3 !important; }
-.mdi-rss { color: #f59e0b !important; }
-
-/* Group Headers - Tighter and more professional */
-.services-group > div.flex.items-center.justify-between.mb-2 {
- border-bottom: 1px solid rgba(255,255,255,0.1) !important;
- padding-bottom: 8px !important;
- margin-bottom: 16px !important;
+/* DB / API tiles: show full connection info */
+.service:not([href]) .service-description,
+.service[href=""] .service-description {
+ max-height: none !important;
+ color: #9aadc4 !important;
}
-.services-group .text-theme-700.dark\:text-theme-200.text-lg.font-bold {
- font-family: 'Montserrat', sans-serif !important;
- font-weight: 700 !important;
- font-size: 1.15rem !important;
- text-transform: uppercase !important;
- letter-spacing: 2px !important;
+.service:hover .service-description {
+ max-height: none !important;
+ color: #b8c8dc !important;
}
-/* --- COLUMN GLOW EFFECTS (Borders & Headers only) --- */
-
-/* 1. Data Pipeline (Blue) */
-.services-group:nth-child(1) .service { border-left-color: var(--neon-blue) !important; }
-.services-group:nth-child(1) .service:hover { box-shadow: -5px 0 15px rgba(0, 243, 255, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
-.services-group:nth-child(1) .text-lg.font-bold { color: var(--neon-blue) !important; text-shadow: 0 0 10px rgba(0, 243, 255, 0.3) !important; }
-
-/* 2. Source Systems (Purple) */
-.services-group:nth-child(2) .service { border-left-color: var(--neon-purple) !important; }
-.services-group:nth-child(2) .service:hover { box-shadow: -5px 0 15px rgba(157, 0, 255, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
-.services-group:nth-child(2) .text-lg.font-bold { color: var(--neon-purple) !important; text-shadow: 0 0 10px rgba(157, 0, 255, 0.3) !important; }
-
-/* 3. Storage (Green) */
-.services-group:nth-child(3) .service { border-left-color: var(--neon-green) !important; }
-.services-group:nth-child(3) .service:hover { box-shadow: -5px 0 15px rgba(0, 255, 102, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
-.services-group:nth-child(3) .text-lg.font-bold { color: var(--neon-green) !important; text-shadow: 0 0 10px rgba(0, 255, 102, 0.3) !important; }
-
-/* 4. Orchestration (Pink) */
-.services-group:nth-child(4) .service { border-left-color: var(--neon-pink) !important; }
-.services-group:nth-child(4) .service:hover { box-shadow: -5px 0 15px rgba(255, 0, 127, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
-.services-group:nth-child(4) .text-lg.font-bold { color: var(--neon-pink) !important; text-shadow: 0 0 10px rgba(255, 0, 127, 0.3) !important; }
-
-/* 5. Analytics (Yellow) */
-.services-group:nth-child(5) .service { border-left-color: var(--neon-yellow) !important; }
-.services-group:nth-child(5) .service:hover { box-shadow: -5px 0 15px rgba(255, 234, 0, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
-.services-group:nth-child(5) .text-lg.font-bold { color: var(--neon-yellow) !important; text-shadow: 0 0 10px rgba(255, 234, 0, 0.3) !important; }
-
-/* 6. Management (Orange) */
-.services-group:nth-child(6) .service { border-left-color: var(--neon-orange) !important; }
-.services-group:nth-child(6) .service:hover { box-shadow: -5px 0 15px rgba(255, 102, 0, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
-.services-group:nth-child(6) .text-lg.font-bold { color: var(--neon-orange) !important; text-shadow: 0 0 10px rgba(255, 102, 0, 0.3) !important; }
-
-/* --- 7. RSS FEEDS (Compact Layout) --- */
-.services-group:nth-child(7) .service {
- border-left-color: #64748b !important;
- padding: 8px 12px !important;
- margin-bottom: 10px !important;
- background: rgba(15, 23, 42, 0.4) !important;
- box-shadow: none !important;
+.status-status-healthy,
+.status-dot-green {
+ background: #3dd68c !important;
+ box-shadow: 0 0 8px rgba(61, 214, 140, 0.5) !important;
}
-.services-group:nth-child(7) .service:hover {
- background: rgba(30, 41, 59, 0.8) !important;
- box-shadow: -3px 0 10px rgba(100, 116, 139, 0.2) !important;
+
+.status-status-unhealthy,
+.status-dot-red {
+ background: #f87171 !important;
}
-.services-group:nth-child(7) .service-icon {
- width: 2rem !important;
- height: 2rem !important;
- min-width: 2rem !important;
- padding: 5px !important;
- margin-right: 12px !important;
- border-radius: 6px !important;
+
+.ping {
+ position: absolute !important;
+ top: 8px !important;
+ right: 8px !important;
+ font-size: 0.55rem !important;
+ margin: 0 !important;
}
-.services-group:nth-child(7) .service-name {
- font-size: 0.9rem !important;
- font-family: 'Inter', sans-serif !important;
- font-weight: 500 !important;
-}
-.services-group:nth-child(7) .service-description {
+
+.information-widget-resources {
font-size: 0.75rem !important;
- margin-top: 2px !important;
+ color: var(--text-muted) !important;
}
-.services-group:nth-child(7) .text-lg.font-bold {
- color: #94a3b8 !important;
- text-shadow: none !important;
- font-size: 1rem !important;
+
+footer {
+ opacity: 0.45;
+ border-top: 1px solid var(--border) !important;
+}
+
+/* Live feed widgets */
+.services-group:has(.service-widget) ul {
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
+}
+
+.services-group:has(.service-widget) .service {
+ min-height: 220px !important;
+ align-items: stretch !important;
+}
+
+.service-widget {
+ background: var(--bg-deep) !important;
+ border-radius: 8px !important;
+ border: 1px solid var(--border) !important;
+ margin-top: 10px !important;
+ padding: 8px 10px !important;
+ max-height: 200px !important;
+ overflow-y: auto !important;
+ width: 100% !important;
+ text-align: left !important;
+}
+
+.service-widget::-webkit-scrollbar {
+ width: 4px;
+}
+
+.service-widget::-webkit-scrollbar-thumb {
+ background: var(--accent-orange);
+ border-radius: 4px;
+}
+
+.service-widget a,
+.service-widget li a {
+ color: var(--accent-blue) !important;
+ font-size: 0.65rem !important;
+ line-height: 1.4 !important;
+ display: block !important;
+ padding: 3px 0 !important;
+}
+
+.service-widget a:hover {
+ color: var(--accent-orange) !important;
+}
+
+.service-widget li {
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
+ padding: 4px 0 !important;
+}
+
+.information-widget-openmeteo {
+ color: var(--text-muted) !important;
+ font-size: 0.8rem !important;
}
diff --git a/config/homepage/custom.js b/config/homepage/custom.js
new file mode 100644
index 0000000..e69de29
diff --git a/config/homepage/dell-technologies.svg b/config/homepage/dell-technologies.svg
new file mode 100644
index 0000000..3e41b32
--- /dev/null
+++ b/config/homepage/dell-technologies.svg
@@ -0,0 +1,18 @@
+
diff --git a/config/homepage/dell.svg b/config/homepage/dell.svg
new file mode 100644
index 0000000..1c49c8c
--- /dev/null
+++ b/config/homepage/dell.svg
@@ -0,0 +1,11 @@
+
diff --git a/config/homepage/docker.yaml b/config/homepage/docker.yaml
new file mode 100644
index 0000000..4125cb3
--- /dev/null
+++ b/config/homepage/docker.yaml
@@ -0,0 +1,4 @@
+---
+# Docker integration — socket on atc-docker01
+local:
+ socket: /var/run/docker.sock
diff --git a/config/homepage/icons/airflow.png b/config/homepage/icons/airflow.png
deleted file mode 100644
index ffb1272..0000000
--- a/config/homepage/icons/airflow.png
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/homepage/icons/apacheairflow.svg b/config/homepage/icons/apacheairflow.svg
new file mode 100644
index 0000000..fd6c19c
--- /dev/null
+++ b/config/homepage/icons/apacheairflow.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/apachecassandra.svg b/config/homepage/icons/apachecassandra.svg
new file mode 100644
index 0000000..7982254
--- /dev/null
+++ b/config/homepage/icons/apachecassandra.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/kafka.png b/config/homepage/icons/apachekafka.png
similarity index 100%
rename from config/homepage/icons/kafka.png
rename to config/homepage/icons/apachekafka.png
diff --git a/config/homepage/icons/apachekafka.svg b/config/homepage/icons/apachekafka.svg
new file mode 100644
index 0000000..602632d
--- /dev/null
+++ b/config/homepage/icons/apachekafka.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/apachespark.svg b/config/homepage/icons/apachespark.svg
new file mode 100644
index 0000000..106fc42
--- /dev/null
+++ b/config/homepage/icons/apachespark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/superset.png b/config/homepage/icons/apachesuperset.svg
similarity index 93%
rename from config/homepage/icons/superset.png
rename to config/homepage/icons/apachesuperset.svg
index 735b4b4..64bc21e 100644
--- a/config/homepage/icons/superset.png
+++ b/config/homepage/icons/apachesuperset.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/config/homepage/icons/cassandra.png b/config/homepage/icons/cassandra.png
deleted file mode 100644
index 52e3536..0000000
--- a/config/homepage/icons/cassandra.png
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/homepage/icons/debezium.png b/config/homepage/icons/debezium.png
index f15df93..e64ddf6 100644
Binary files a/config/homepage/icons/debezium.png and b/config/homepage/icons/debezium.png differ
diff --git a/config/homepage/icons/debezium.svg b/config/homepage/icons/debezium.svg
new file mode 100644
index 0000000..e69de29
diff --git a/config/homepage/icons/dell-technologies.svg b/config/homepage/icons/dell-technologies.svg
new file mode 100644
index 0000000..3e41b32
--- /dev/null
+++ b/config/homepage/icons/dell-technologies.svg
@@ -0,0 +1,18 @@
+
diff --git a/config/homepage/icons/dell.svg b/config/homepage/icons/dell.svg
new file mode 100644
index 0000000..1c49c8c
--- /dev/null
+++ b/config/homepage/icons/dell.svg
@@ -0,0 +1,11 @@
+
diff --git a/config/homepage/icons/elasticsearch.png b/config/homepage/icons/elasticsearch.png
deleted file mode 100644
index 0da0d70..0000000
--- a/config/homepage/icons/elasticsearch.png
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/homepage/icons/elasticsearch.svg b/config/homepage/icons/elasticsearch.svg
new file mode 100644
index 0000000..69ce86b
--- /dev/null
+++ b/config/homepage/icons/elasticsearch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/git.png b/config/homepage/icons/git.png
new file mode 100644
index 0000000..8577c1f
Binary files /dev/null and b/config/homepage/icons/git.png differ
diff --git a/config/homepage/icons/git.svg b/config/homepage/icons/git.svg
new file mode 100644
index 0000000..5f19a87
--- /dev/null
+++ b/config/homepage/icons/git.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/grafana.png b/config/homepage/icons/grafana.png
index 5b8e59c..6f7d9a0 100644
Binary files a/config/homepage/icons/grafana.png and b/config/homepage/icons/grafana.png differ
diff --git a/config/homepage/icons/grafana.svg b/config/homepage/icons/grafana.svg
new file mode 100644
index 0000000..c99695a
--- /dev/null
+++ b/config/homepage/icons/grafana.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/kibana.png b/config/homepage/icons/kibana.png
deleted file mode 100644
index bb22e21..0000000
--- a/config/homepage/icons/kibana.png
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/homepage/icons/kibana.svg b/config/homepage/icons/kibana.svg
new file mode 100644
index 0000000..42b25e5
--- /dev/null
+++ b/config/homepage/icons/kibana.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/ldap.png b/config/homepage/icons/ldap.png
new file mode 100644
index 0000000..114f930
Binary files /dev/null and b/config/homepage/icons/ldap.png differ
diff --git a/config/homepage/icons/minio.png b/config/homepage/icons/minio.png
index 14063e5..8b1e360 100644
Binary files a/config/homepage/icons/minio.png and b/config/homepage/icons/minio.png differ
diff --git a/config/homepage/icons/minio.svg b/config/homepage/icons/minio.svg
new file mode 100644
index 0000000..8d82fea
--- /dev/null
+++ b/config/homepage/icons/minio.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/mongodb.png b/config/homepage/icons/mongodb.png
index 8660ced..685f7c1 100644
Binary files a/config/homepage/icons/mongodb.png and b/config/homepage/icons/mongodb.png differ
diff --git a/config/homepage/icons/mongodb.svg b/config/homepage/icons/mongodb.svg
new file mode 100644
index 0000000..13d7d00
--- /dev/null
+++ b/config/homepage/icons/mongodb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/mysql.png b/config/homepage/icons/mysql.png
index 853c55f..a2a1893 100644
Binary files a/config/homepage/icons/mysql.png and b/config/homepage/icons/mysql.png differ
diff --git a/config/homepage/icons/mysql.svg b/config/homepage/icons/mysql.svg
new file mode 100644
index 0000000..0948dc4
--- /dev/null
+++ b/config/homepage/icons/mysql.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/neo4j.png b/config/homepage/icons/neo4j.png
index 50358d4..bbb9b4b 100644
Binary files a/config/homepage/icons/neo4j.png and b/config/homepage/icons/neo4j.png differ
diff --git a/config/homepage/icons/neo4j.svg b/config/homepage/icons/neo4j.svg
new file mode 100644
index 0000000..535a42c
--- /dev/null
+++ b/config/homepage/icons/neo4j.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/apacheairflow.svg b/config/homepage/icons/new/apacheairflow.svg
new file mode 100644
index 0000000..fd6c19c
--- /dev/null
+++ b/config/homepage/icons/new/apacheairflow.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/apachecassandra.svg b/config/homepage/icons/new/apachecassandra.svg
new file mode 100644
index 0000000..7982254
--- /dev/null
+++ b/config/homepage/icons/new/apachecassandra.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/apachekafka.svg b/config/homepage/icons/new/apachekafka.svg
new file mode 100644
index 0000000..602632d
--- /dev/null
+++ b/config/homepage/icons/new/apachekafka.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/apachespark.svg b/config/homepage/icons/new/apachespark.svg
new file mode 100644
index 0000000..106fc42
--- /dev/null
+++ b/config/homepage/icons/new/apachespark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/apachesuperset.svg b/config/homepage/icons/new/apachesuperset.svg
new file mode 100644
index 0000000..64bc21e
--- /dev/null
+++ b/config/homepage/icons/new/apachesuperset.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/debezium.svg b/config/homepage/icons/new/debezium.svg
new file mode 100644
index 0000000..e69de29
diff --git a/config/homepage/icons/new/elasticsearch.svg b/config/homepage/icons/new/elasticsearch.svg
new file mode 100644
index 0000000..69ce86b
--- /dev/null
+++ b/config/homepage/icons/new/elasticsearch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/git.svg b/config/homepage/icons/new/git.svg
new file mode 100644
index 0000000..5f19a87
--- /dev/null
+++ b/config/homepage/icons/new/git.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/grafana.svg b/config/homepage/icons/new/grafana.svg
new file mode 100644
index 0000000..c99695a
--- /dev/null
+++ b/config/homepage/icons/new/grafana.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/kibana.svg b/config/homepage/icons/new/kibana.svg
new file mode 100644
index 0000000..42b25e5
--- /dev/null
+++ b/config/homepage/icons/new/kibana.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/minio.svg b/config/homepage/icons/new/minio.svg
new file mode 100644
index 0000000..8d82fea
--- /dev/null
+++ b/config/homepage/icons/new/minio.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/mongodb.svg b/config/homepage/icons/new/mongodb.svg
new file mode 100644
index 0000000..13d7d00
--- /dev/null
+++ b/config/homepage/icons/new/mongodb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/mysql.svg b/config/homepage/icons/new/mysql.svg
new file mode 100644
index 0000000..0948dc4
--- /dev/null
+++ b/config/homepage/icons/new/mysql.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/neo4j.svg b/config/homepage/icons/new/neo4j.svg
new file mode 100644
index 0000000..535a42c
--- /dev/null
+++ b/config/homepage/icons/new/neo4j.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/postgresql.svg b/config/homepage/icons/new/postgresql.svg
new file mode 100644
index 0000000..931bdae
--- /dev/null
+++ b/config/homepage/icons/new/postgresql.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/proxmox.svg b/config/homepage/icons/new/proxmox.svg
new file mode 100644
index 0000000..b6581ec
--- /dev/null
+++ b/config/homepage/icons/new/proxmox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/new/trino.svg b/config/homepage/icons/new/trino.svg
new file mode 100644
index 0000000..2af274c
--- /dev/null
+++ b/config/homepage/icons/new/trino.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/postgresql.png b/config/homepage/icons/postgresql.png
index abacb8f..2c4e4df 100644
Binary files a/config/homepage/icons/postgresql.png and b/config/homepage/icons/postgresql.png differ
diff --git a/config/homepage/icons/postgresql.svg b/config/homepage/icons/postgresql.svg
new file mode 100644
index 0000000..931bdae
--- /dev/null
+++ b/config/homepage/icons/postgresql.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/proxmox.png b/config/homepage/icons/proxmox.png
new file mode 100644
index 0000000..f6619f7
Binary files /dev/null and b/config/homepage/icons/proxmox.png differ
diff --git a/config/homepage/icons/proxmox.svg b/config/homepage/icons/proxmox.svg
new file mode 100644
index 0000000..b6581ec
--- /dev/null
+++ b/config/homepage/icons/proxmox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/icons/python.png b/config/homepage/icons/python.png
new file mode 100644
index 0000000..dbf1847
Binary files /dev/null and b/config/homepage/icons/python.png differ
diff --git a/config/homepage/icons/spark.png b/config/homepage/icons/spark.png
deleted file mode 100644
index a78c05d..0000000
--- a/config/homepage/icons/spark.png
+++ /dev/null
@@ -1 +0,0 @@
-Package size exceeded the configured limit of 50 MB. Try https://github.com/walkxcode/dashboard-icons/tree/master/png/apache-spark.png instead.
\ No newline at end of file
diff --git a/config/homepage/icons/trino.png b/config/homepage/icons/trino.png
deleted file mode 100644
index 5039829..0000000
--- a/config/homepage/icons/trino.png
+++ /dev/null
@@ -1 +0,0 @@
-Package size exceeded the configured limit of 50 MB. Try https://github.com/walkxcode/dashboard-icons/tree/master/png/trino.png instead.
\ No newline at end of file
diff --git a/config/homepage/icons/trino.svg b/config/homepage/icons/trino.svg
new file mode 100644
index 0000000..2af274c
--- /dev/null
+++ b/config/homepage/icons/trino.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/homepage/kubernetes.yaml b/config/homepage/kubernetes.yaml
new file mode 100644
index 0000000..aca6e82
--- /dev/null
+++ b/config/homepage/kubernetes.yaml
@@ -0,0 +1,2 @@
+---
+# sample kubernetes config
diff --git a/config/homepage/logs/homepage.log b/config/homepage/logs/homepage.log
new file mode 100644
index 0000000..c275b37
--- /dev/null
+++ b/config/homepage/logs/homepage.log
@@ -0,0 +1,7 @@
+[2026-05-19T15:50:52.333Z] info: kubernetes.yaml was copied to the config folder
+[2026-05-19T15:51:22.251Z] error: Host validation failed for: atc-docker01.dell-atc.lan. Hint: Set the HOMEPAGE_ALLOWED_HOSTS environment variable to allow requests from this host / port.
+[2026-05-19T15:52:02.580Z] info: docker.yaml was copied to the config folder
+[2026-05-19T15:52:22.162Z] info: bookmarks.yaml was copied to the config folder
+[2026-05-19T15:52:22.162Z] info: widgets.yaml was copied to the config folder
+[2026-05-19T15:52:22.164Z] info: custom.js was copied to the config folder
+[2026-05-19T16:55:57.843Z] error: HTTP Error 401 calling https://10.0.10.65:8006/api2/json/cluster/resources
diff --git a/config/homepage/services.yaml b/config/homepage/services.yaml
index e287ecb..c18f24a 100644
--- a/config/homepage/services.yaml
+++ b/config/homepage/services.yaml
@@ -1,142 +1,294 @@
---
-# Lakehouse Data Pipeline Dashboard
-# Organized by system type with Palantir-style layout
+# ATC Lakehouse — Dell Technologies FDE Dashboard (Bart & Mo)
- Data Pipeline:
- - Kafka UI:
- icon: mdi-apache-kafka
- color: "#E02014"
- href: http://atc-kafka01.dell-atc.lan:9000/
- description: Kafka Topics & Management
- - Debezium Connect:
- icon: mdi-database-sync
- color: "#4ECDC4"
- href: http://atc-lake01.dell-atc.lan:8083/
- description: CDC Connectors
- - Spark Master:
- icon: mdi-star-four-points
- color: "#E25A1C"
- href: http://atc-lake01.dell-atc.lan:8080/
- description: Spark Jobs & Monitoring
- - Trino:
- icon: si-trino
- color: "#DD00A1"
- href: http://atc-lake01.dell-atc.lan:8089/
- description: Distributed SQL Query Engine
+ - Kafka UI:
+ icon: http://atc-docker01.dell-atc.lan:8080/apachekafka.svg
+ href: http://atc-kafka01.dell-atc.lan:9000/
+ description: Kafka cluster UI
+ siteMonitor: http://atc-kafka01.dell-atc.lan:9000/
+ color: "#E02014"
+ - Debezium:
+ icon: http://atc-docker01.dell-atc.lan:8080/debezium.png
+ href: http://atc-lake01.dell-atc.lan:8083/
+ description: CDC connectors
+ siteMonitor: http://atc-lake01.dell-atc.lan:8083/
+ color: "#4ECDC4"
+ - Spark:
+ icon: http://atc-docker01.dell-atc.lan:8080/apachespark.svg
+ href: http://atc-lake01.dell-atc.lan:8080/
+ description: Spark master UI
+ siteMonitor: http://atc-lake01.dell-atc.lan:8080/
+ color: "#E25A1C"
+ - Trino:
+ icon: http://atc-docker01.dell-atc.lan:8080/trino.svg
+ href: http://atc-lake01.dell-atc.lan:8089/
+ description: Distributed SQL
+ siteMonitor: http://atc-lake01.dell-atc.lan:8089/ui/
+ color: "#DD00A1"
+ - Airflow:
+ icon: http://atc-docker01.dell-atc.lan:8080/apacheairflow.svg
+ href: http://10.0.21.55:8080/
+ description: Workflow orchestration
+ siteMonitor: http://10.0.21.55:8080/
+ color: "#017CEE"
-- Source Systems:
- - MongoDB:
- icon: si-mongodb
- color: "#47A248"
- href: mongodb://atc-db02.dell-atc.lan:27017
- description: MongoDB Supply Chain Data
- - PostgreSQL:
- icon: si-postgresql
- color: "#4169E1"
- href: postgresql://atc-db02.dell-atc.lan:5432
- description: PostgreSQL Sales Data
- - Cassandra:
- icon: si-apachecassandra
- color: "#1287B1"
- href: cassandra://atc-db02.dell-atc.lan:9042
- description: Cassandra Telemetry Data
- - MySQL:
- icon: si-mysql
- color: "#4479A1"
- href: mysql://atc-db02.dell-atc.lan:3306
- description: MySQL HR Data
- - Neo4j:
- icon: si-neo4j
- color: "#008CC1"
- href: http://atc-db02.dell-atc.lan:7474/
- description: Neo4j Graph Database
+- Analytics:
+ - Superset:
+ icon: http://atc-docker01.dell-atc.lan:8080/apachesuperset.svg
+ href: http://atc-docker01.dell-atc.lan:8088/
+ description: BI dashboards
+ siteMonitor: http://atc-docker01.dell-atc.lan:8088/health
+ color: "#6c5ce7"
+ - Kibana:
+ icon: http://atc-docker01.dell-atc.lan:8080/kibana.svg
+ href: http://atc-elastic01.dell-atc.lan:5601/
+ description: Elasticsearch UI
+ siteMonitor: http://atc-elastic01.dell-atc.lan:5601/
+ color: "#F04E98"
+ - Elasticsearch API:
+ icon: http://atc-docker01.dell-atc.lan:8080/elasticsearch.svg
+ ping: atc-elastic01.dell-atc.lan
+ description: |
+ Host: atc-elastic01.dell-atc.lan
+ Port: 9200 (internal/VLAN)
+ curl: curl http://atc-elastic01.dell-atc.lan:9200
+ Note: use Kibana for browser access
+ color: "#005571"
+ - Grafana:
+ icon: http://atc-docker01.dell-atc.lan:8080/grafana.svg
+ ping: atc-grafana.dell-atc.lan
+ description: |
+ Host: atc-grafana.dell-atc.lan (10.0.20.103)
+ Port: 3000
+ Status: service stopped
+ Start: systemctl start grafana-server
+ color: "#F46800"
-- Storage:
- - ObjectScale S3:
- icon: mdi-database-cloud
- color: "#00d2ff"
- href: http://10.0.20.111:9020/
- description: S3 Object Storage
- - ObjectScale Web:
- icon: mdi-server-network
- color: "#b500ff"
- href: https://10.0.20.111/
- description: ObjectScale Management UI
+- Infrastructure:
+ - ObjectScale:
+ icon: http://atc-docker01.dell-atc.lan:8080/dell.svg
+ href: https://10.0.20.111/
+ description: Dell ObjectScale S3
+ siteMonitor: https://10.0.20.111/
+ color: "#007DB8"
+ - Proxmox:
+ icon: http://atc-docker01.dell-atc.lan:8080/proxmox.svg
+ href: https://10.0.10.65:8006/
+ description: pve01 virtualization
+ siteMonitor: https://10.0.10.65:8006/
+ color: "#E57000"
+ widget:
+ type: proxmox
+ url: https://10.0.10.65:8006
+ node: pve01
+ fields: ["vms", "lxc", "resources.cpu", "resources.mem"]
+ - Forgejo:
+ icon: http://atc-docker01.dell-atc.lan:8080/git.svg
+ href: http://atc-mgt01.dell-atc.lan:3001/
+ description: Git — Lakehouse repo
+ siteMonitor: http://atc-mgt01.dell-atc.lan:3001/
+ color: "#F05032"
+ - LDAP Admin:
+ icon: http://atc-docker01.dell-atc.lan:8080/ldap.png
+ href: http://atc-mgt01.dell-atc.lan/lam/
+ description: LDAP Account Manager
+ siteMonitor: http://atc-mgt01.dell-atc.lan/lam/
+ color: "#0984e3"
-- Orchestration:
- - Airflow:
- icon: si-apacheairflow
- color: "#017CEE"
- href: http://10.0.21.55:8080/
- description: Workflow Orchestration
+- Databases (atc-db01 — 10.0.20.112):
+ - PostgreSQL:
+ icon: http://atc-docker01.dell-atc.lan:8080/postgresql.svg
+ ping: atc-db01.dell-atc.lan
+ description: |
+ Host: atc-db01.dell-atc.lan
+ Port: 5432
+ URI: postgresql://USER:PASS@atc-db01.dell-atc.lan:5432/DBNAME
+ psql: psql -h atc-db01.dell-atc.lan -U USER -d DBNAME
+ color: "#4169E1"
+ - MySQL:
+ icon: http://atc-docker01.dell-atc.lan:8080/mysql.svg
+ ping: atc-db01.dell-atc.lan
+ description: |
+ Host: atc-db01.dell-atc.lan
+ Port: 3306
+ URI: mysql://USER:PASS@atc-db01.dell-atc.lan:3306/DBNAME
+ CLI: mysql -h atc-db01.dell-atc.lan -u USER -p
+ color: "#4479A1"
-- Analytics & Visualization:
- - Superset:
- icon: mdi-chart-bar
- color: "#6c5ce7"
- href: http://atc-docker01.dell-atc.lan:8088/
- description: Business Intelligence & Dashboards
- - Elasticsearch:
- icon: si-elasticsearch
- color: "#005571"
- href: http://atc-elastic01.dell-atc.lan:9200/
- description: Search & Analytics Engine
- - Kibana:
- icon: si-kibana
- color: "#F04E98"
- href: http://atc-elastic01.dell-atc.lan:5601/
- description: Data Visualization
- - Grafana:
- icon: si-grafana
- color: "#F46800"
- href: http://atc-grafana.dell-atc.lan/
- description: Metrics & Monitoring
+- Databases (atc-db02 — 10.0.21.51):
+ - MongoDB:
+ icon: http://atc-docker01.dell-atc.lan:8080/mongodb.svg
+ ping: atc-db02.dell-atc.lan
+ description: |
+ Host: atc-db02.dell-atc.lan
+ Port: 27017
+ URI: mongodb://USER:PASS@atc-db02.dell-atc.lan:27017/DBNAME
+ CLI: mongosh "mongodb://atc-db02.dell-atc.lan:27017"
+ color: "#47A248"
+ - PostgreSQL:
+ icon: http://atc-docker01.dell-atc.lan:8080/postgresql.svg
+ ping: atc-db02.dell-atc.lan
+ description: |
+ Host: atc-db02.dell-atc.lan
+ Port: 5432
+ URI: postgresql://USER:PASS@atc-db02.dell-atc.lan:5432/DBNAME
+ psql: psql -h atc-db02.dell-atc.lan -U USER -d DBNAME
+ color: "#336791"
+ - MySQL:
+ icon: http://atc-docker01.dell-atc.lan:8080/mysql.svg
+ ping: atc-db02.dell-atc.lan
+ description: |
+ Host: atc-db02.dell-atc.lan
+ Port: 3306
+ URI: mysql://USER:PASS@atc-db02.dell-atc.lan:3306/DBNAME
+ CLI: mysql -h atc-db02.dell-atc.lan -u USER -p
+ color: "#00758F"
+ - Cassandra:
+ icon: http://atc-docker01.dell-atc.lan:8080/apachecassandra.svg
+ ping: atc-db02.dell-atc.lan
+ description: |
+ Host: atc-db02.dell-atc.lan
+ Port: 9042
+ cqlsh: cqlsh atc-db02.dell-atc.lan 9042
+ URI: cassandra://atc-db02.dell-atc.lan:9042
+ color: "#1287B1"
+ - Neo4j:
+ icon: http://atc-docker01.dell-atc.lan:8080/neo4j.svg
+ href: http://atc-db02.dell-atc.lan:7474/
+ description: |
+ Browser: http://atc-db02.dell-atc.lan:7474
+ Bolt: bolt://atc-db02.dell-atc.lan:7687
+ URI: neo4j://atc-db02.dell-atc.lan:7687
+ siteMonitor: http://atc-db02.dell-atc.lan:7474/
+ color: "#008CC1"
-- Management:
- - Proxmox:
- icon: si-proxmox
- color: "#E57000"
- href: https://dcp-pve01.dell-atc.lan:8006/
- description: Virtualization Platform
- - Git/Forgejo:
- icon: si-git
- color: "#F05032"
- href: http://atc-mgt01.dell-atc.lan:3001/
- description: Git Repository
- - ATC LDAP:
- icon: mdi-account-group
- color: "#0984e3"
- href: http://atc-mgt01.dell-atc.lan/lam/
- description: LDAP Management
+- Live Feeds:
+ - Hacker News DE:
+ icon: mdi-newspaper-variant-outline
+ href: https://hn.algolia.com/?q=data%20engineering
+ description: Data engineering on HN
+ color: "#E8752A"
+ widget:
+ type: customapi
+ url: https://hn.algolia.com/api/v1/search?query=data+engineering&tags=story&hitsPerPage=8
+ refreshInterval: 300000
+ display: dynamic-list
+ mappings:
+ items: hits
+ name: title
+ label: points
+ href: url
+ target: url
+ - Hacker News Kafka:
+ icon: mdi-lightning-bolt
+ href: https://hn.algolia.com/?q=kafka
+ description: Kafka & streaming
+ color: "#E02014"
+ widget:
+ type: customapi
+ url: https://hn.algolia.com/api/v1/search?query=apache+kafka&tags=story&hitsPerPage=8
+ refreshInterval: 300000
+ display: dynamic-list
+ mappings:
+ items: hits
+ name: title
+ label: points
+ href: url
+ target: url
+ - Confluent Blog:
+ icon: http://atc-docker01.dell-atc.lan:8080/apachekafka.svg
+ href: https://www.confluent.io/blog/
+ description: Confluent RSS
+ color: "#E02014"
+ widget:
+ type: rss
+ url: https://www.confluent.io/blog/rss.xml
+ limit: 8
+ format: rss
+ - Airflow Blog:
+ icon: http://atc-docker01.dell-atc.lan:8080/apacheairflow.svg
+ href: https://airflow.apache.org/blog/
+ description: Apache Airflow news
+ color: "#017CEE"
+ widget:
+ type: rss
+ url: http://atc-docker01.dell-atc.lan:8090/feed/airflow
+ limit: 8
+ format: rss
+ - KDnuggets:
+ icon: mdi-chart-timeline-variant
+ href: https://www.kdnuggets.com/
+ description: Data science news
+ color: "#f59e0b"
+ widget:
+ type: rss
+ url: http://atc-docker01.dell-atc.lan:8090/feed/kdnuggets
+ limit: 8
+ format: rss
+ - Towards Data Science:
+ icon: mdi-brain
+ href: https://towardsdatascience.com/
+ description: ML & data articles
+ color: "#007DB8"
+ widget:
+ type: rss
+ url: http://atc-docker01.dell-atc.lan:8090/feed/towardsds
+ limit: 8
+ format: rss
+ - Debezium Blog:
+ icon: http://atc-docker01.dell-atc.lan:8080/debezium.png
+ href: https://debezium.io/blog/
+ description: CDC & streaming blog
+ color: "#4ECDC4"
+ widget:
+ type: rss
+ url: https://debezium.io/blog.atom
+ limit: 8
+ format: atom
-- Data Engineering & AI Resources:
- - TLDR Data Engineering:
- icon: mdi-rss
- color: "#f59e0b"
- href: https://tldr.tech/dataengineering/
- description: Daily data engineering news
- - TLDR AI:
- icon: mdi-rss
- color: "#f59e0b"
- href: https://tldr.tech/ai/
- description: Daily AI news
- - KDnuggets:
- icon: mdi-rss
- color: "#f59e0b"
- href: https://www.kdnuggets.com/
- description: Data science and machine learning
- - Towards Data Science:
- icon: mdi-rss
- color: "#f59e0b"
- href: https://towardsdatascience.com/
- description: Data science articles
- - Data Engineering Central:
- icon: mdi-rss
- color: "#f59e0b"
- href: https://www.dataengineeringcentral.com/
- description: Data engineering resources
- - Apache Airflow Blog:
- icon: mdi-rss
- color: "#f59e0b"
- href: https://airflow.apache.org/blog/
- description: Airflow updates and tutorials
+- News & Resources:
+ - TLDR Data Eng:
+ icon: mdi-rss
+ href: https://tldr.tech/dataengineering/
+ description: Daily DE digest
+ color: "#E8752A"
+ - TLDR AI:
+ icon: mdi-robot
+ href: https://tldr.tech/ai/
+ description: Daily AI digest
+ color: "#ff8c2a"
+ - Dell Newsroom:
+ icon: http://atc-docker01.dell-atc.lan:8080/dell.svg
+ href: https://www.dell.com/en-us/dt/corporate/newsroom.htm
+ description: Dell Technologies news
+ color: "#007DB8"
+ - Real Python:
+ icon: mdi-language-python
+ href: https://realpython.com/
+ description: Python tutorials
+ color: "#3776AB"
+
+- Docker (atc-docker01):
+ - Homepage:
+ icon: mdi-view-dashboard
+ href: http://atc-docker01.dell-atc.lan/
+ description: This dashboard
+ server: local
+ container: homepage
+ color: "#E8752A"
+ - Superset:
+ icon: http://atc-docker01.dell-atc.lan:8080/apachesuperset.svg
+ href: http://atc-docker01.dell-atc.lan:8088/
+ description: BI platform
+ server: local
+ container: superset
+ color: "#6c5ce7"
+ - Forgejo Local:
+ icon: http://atc-docker01.dell-atc.lan:8080/git.svg
+ href: http://atc-docker01.dell-atc.lan:4002/
+ description: Local Git :4002
+ siteMonitor: http://atc-docker01.dell-atc.lan:4002/
+ server: local
+ container: forgejo
+ color: "#F05032"
diff --git a/config/homepage/settings.yaml b/config/homepage/settings.yaml
new file mode 100644
index 0000000..66dd907
--- /dev/null
+++ b/config/homepage/settings.yaml
@@ -0,0 +1,34 @@
+---
+title: ATC Lakehouse
+description: Forward Deployed Engineering — Dell Technologies · Bart & Mo
+theme: dark
+color: slate
+headerStyle: underlined
+statusStyle: dot
+target: _blank
+showStats: true
+layout:
+ Data Pipeline:
+ style: row
+ columns: 5
+ Analytics:
+ style: row
+ columns: 4
+ Infrastructure:
+ style: row
+ columns: 4
+ Databases (atc-db01 — 10.0.20.112):
+ style: row
+ columns: 2
+ Databases (atc-db02 — 10.0.21.51):
+ style: row
+ columns: 3
+ Live Feeds:
+ style: row
+ columns: 4
+ News & Resources:
+ style: row
+ columns: 4
+ Docker (atc-docker01):
+ style: row
+ columns: 3
diff --git a/config/homepage/widgets.yaml b/config/homepage/widgets.yaml
new file mode 100644
index 0000000..081401f
--- /dev/null
+++ b/config/homepage/widgets.yaml
@@ -0,0 +1,33 @@
+---
+- logo:
+ icon: http://atc-docker01.dell-atc.lan:8080/dell-technologies.svg
+ href: https://www.delltechnologies.com
+ target: _blank
+- greeting:
+ text_size: xl
+ text: "Forward Deployed Engineering"
+ subtext: "Bart & Mo · Dell Technologies · ATC Lakehouse"
+- datetime:
+ text_size: lg
+ format:
+ timeStyle: short
+ dateStyle: medium
+ hourCycle: h23
+- search:
+ provider: duckduckgo
+ focus: false
+ target: _blank
+- resources:
+ cpu: true
+ memory: true
+ disk: /
+ uptime: true
+ units: metric
+ refresh: 3000
+- openmeteo:
+ label: Lab
+ latitude: 52.37
+ longitude: 4.89
+ timezone: Europe/Amsterdam
+ units: metric
+ cache: 30