From 8750fa24b7b3e8bd75e9bda65efcdee7624d5bb1 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Tue, 13 Jan 2026 08:53:13 -0300 Subject: [PATCH] ui: updated atlas and titan lab facts --- frontend/src/views/AboutView.vue | 31 +++++++++++++++++++++---------- frontend/src/views/HomeView.vue | 6 +++--- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/frontend/src/views/AboutView.vue b/frontend/src/views/AboutView.vue index fb37d7b..074eb51 100644 --- a/frontend/src/views/AboutView.vue +++ b/frontend/src/views/AboutView.vue @@ -68,19 +68,25 @@
-

The Titan Story

+

Titan Lab

atlas + oceanus

- Titan Lab is my 25-node homelab with a production mindset: security, monitoring, and repeatable changes. The core is - Atlas, a GitOps-managed k3s cluster where most services are reconciled by + The Titan Lab is my 26-node (and growing) homelab with a production mindset: security, monitoring, and repeatable changes. The core is + Atlas, a GitOps-managed k3s cluster where services are reconciled by Flux.

- Oceanus is intentionally separated for validator workloads while still feeding data back into the same - observability stack. Storage is tiered with Longhorn (astreae for system data and - asteria for user data), fronted by Traefik and backed by centralized identity via Keycloak. + Atlas is my attempt to fully replace all online services that I need or use with self-hosted versions. I care + deeply about security both for the lab and the cluster and personally. My first hosted services was VaultWarder + but now the cluster hosts everything from email to ai. In my freetime, I'm always working on Atlas with small + services or organization improvements to make it better and cleaner and cooler. +

+

+ Oceanus is intentionally separated host for validator workloads while still feeding data back into the same + observability stack. SUI is a crypto currency I follow and believe in and so Oceanus is in my lab and is dedicated + hardware to extend their infrastructure and make the SUI project more resilient.

@@ -91,7 +97,7 @@ const skills = [ "Python", "Linux", - "Kubernetes (k3s)", + "Kubernetes (k3s/k8s)", "Containers (Docker/OCI)", "GitOps (Flux)", "CI/CD (Jenkins)", @@ -127,10 +133,15 @@ const timeline = [ company: "Titan Lab (personal platform)", dates: "Apr 2020 – Present", points: [ - "Operate a mixed arm64/amd64 environment with GitOps (Gitea → Jenkins → Harbor → Flux).", - "Centralize identity with Keycloak and front services via Traefik ingress.", + "Operate a mixed arm64/amd64 environment with GitOps (Gitea -> Jenkins -> Harbor -> Flux).", + "Centralized identity with Keycloak and front services via Traefik ingress.", "Run tiered Longhorn storage: astreae (system) and asteria (user).", - "Build observability with Grafana + VictoriaMetrics and dashboards around real service health.", + "Build observability with Grafana + VictoriaMetrics and OpenSearch dashboards around real service health and log tracking.", + "Audio, video, and text communication on a Matrix-LiveKit-Coturn-Element stack with mobile compatibility and AI chat integration.", + "Video streaming of home movies via Jellyfin and instant uploading/publishing with Pegasus.", + "Host crypto projects with a XRM node and a SUI validator.", + "Has a knowledge base about the cluster itself for AI bot awareness.", + "Vault based secret management - no critical information in Kubernetes secrets.", ], }, { diff --git a/frontend/src/views/HomeView.vue b/frontend/src/views/HomeView.vue index 1ed32ca..f59ec93 100644 --- a/frontend/src/views/HomeView.vue +++ b/frontend/src/views/HomeView.vue @@ -5,7 +5,7 @@

Titan Lab

Overview

- Titan Lab is a 25-node homelab with a production mindset. Atlas is its Kubernetes cluster that runs user and dev + Titan Lab is a 26-node homelab with a production mindset. Atlas is its Kubernetes cluster that runs user and dev services. Oceanus is a dedicated SUI validator host. Underlying components such as Theia, the bastion, and Tethys, the link between Atlas and Oceanus underpin the lab. Membership grants the following services below.

@@ -100,14 +100,14 @@ const oceanusPillClass = computed(() => (props.labStatus?.oceanus?.up ? "pill-ok const metricItems = computed(() => { const items = [ - { label: "Lab nodes", value: "25", note: "26 total (titan-16 is down)\nWorkers: 8 rpi5s, 8 rpi4s, 2 jetsons,\n\t\t\t\t 1 minipc\nControl plane: 3 rpi5\nDedicated Hosts: oceanus, titan-db,\n\t\t\t\t\t\t\t\t tethys, theia" }, + { label: "Lab nodes", value: "26", note: "Workers: 8 rpi5s, 8 rpi4s, 2 jetsons,\n\t\t\t\t 1 minipc\nControl plane: 3 rpi5\nDedicated Hosts: oceanus, titan-db,\n\t\t\t\t\t\t\t\t tethys, theia" }, { label: "CPU cores", value: "142", note: "32 arm64 cores @ 1.5Ghz\n12 arm64 cores @ 1.9Ghz\n52 arm64 cores @ 2.4Ghz\n10 amd64 cores @ 5.00Ghz\n12 amd64 cores @ 4.67Ghz\n24 amd64 cores @ 4.04Ghz" }, { label: "Memory", value: "552 GB", note: "64GB Raspberry Pi 4\n104GB Raspberry Pi 5\n32GB NVIDIA Jetson Xavier\n352GB AMD64 Chipsets", }, - { label: "Atlas storage", value: "80 TB", note: "astreae: 32GB/4xRPI4\nasteria: 48GB/4xRPI4" }, + { label: "Storage", value: "80 TB", note: "astreae: 32GB/4xRPI4\nasteria: 48GB/4xRPI4" }, ]; return items.map((item) => ({ ...item,