114 lines
4.3 KiB
TypeScript
114 lines
4.3 KiB
TypeScript
import { LabService } from "@/types/index";
|
|
|
|
export const LAB_SERVICES: LabService[] = [
|
|
{
|
|
id: "observatory",
|
|
name: "The Observatory",
|
|
description:
|
|
"Astronomical API orchestration and orbital visualization. Built to track ISS transits and lunar phases over Copenhagen.",
|
|
stack: ["Next.js", "Node", "SQLite"],
|
|
visibility: "public",
|
|
url: "https://observatory.georgew.dev",
|
|
gitUrl: "https://git.georgew.dev/georgew/mission-control",
|
|
image: "/lab/observatory.jpg",
|
|
uptimeId: 12,
|
|
},
|
|
{
|
|
id: "dino-tracker",
|
|
name: "GW Paleo",
|
|
description:
|
|
"A digital field journal and taxonomic registry for Dinosauria. Designed with a 'Museum Archive' aesthetic, this specimen tracker syncs with the Paleobiology Database (PBDB) to catalog thousands of validated species and genera.",
|
|
stack: ["Next.js", "Prisma", "SQLite", "Tailwind CSS"],
|
|
visibility: "public",
|
|
url: "https://paleo.georgew.dev",
|
|
gitUrl: "https://git.georgew.dev/georgew/dino-tracker",
|
|
image: "/lab/dino-tracker.jpg",
|
|
uptimeId: 16,
|
|
},
|
|
{
|
|
id: "surf-hub",
|
|
name: "Surf Sentinel",
|
|
description:
|
|
"Custom telemetry dashboard for Llangennith Bay, Wales. Pulling real-time buoy data and wave height predictions to find the perfect window for a session.",
|
|
stack: ["Grafana", "Influx DB", "Node"],
|
|
visibility: "public",
|
|
url: "https://surf.georgew.dev/d/adrx6b4/llangennith-beach-surf-data?orgId=1&from=now-24h&to=now&timezone=browser&refresh=1h&theme=dark&kiosk=true",
|
|
image: "/lab/surf-hub.jpg",
|
|
gitUrl: "https://git.georgew.dev/georgew/surf-hub",
|
|
uptimeId: 13,
|
|
},
|
|
{
|
|
id: "audiobookshelf",
|
|
name: "The Archive",
|
|
description:
|
|
"Dedicated audiobook server for the household. Primarily used for our Brandon Sanderson, Patrick Rothfuss, and Dungeon Crawler Carl marathons.",
|
|
stack: ["Docker", "Compose", "Tailscale", "rclone"],
|
|
visibility: "tailscale",
|
|
image: "/lab/audiobookshelf.jpg",
|
|
gitUrl: "https://git.georgew.dev/georgew/audiobookshelf",
|
|
uptimeId: 6,
|
|
},
|
|
{
|
|
id: "yamtrack",
|
|
name: "Yamtrack",
|
|
description:
|
|
"A specialized tracker for our anime watch-lists! Features custom metadata hooks to keep our seasonal progress in sync.",
|
|
stack: ["Docker", "Redis", "Tailscale"],
|
|
visibility: "tailscale",
|
|
image: "/lab/yamtrack.jpg",
|
|
gitUrl: "https://git.georgew.dev/georgew/yamtrack",
|
|
uptimeId: 11,
|
|
},
|
|
{
|
|
id: "paperless",
|
|
name: "Paperless-ngx",
|
|
description:
|
|
"Personal document management system with OCR and automated tagging. Digitizing our physical mail and records into a searchable, versioned archive.",
|
|
stack: ["Docker", "Redis", "PostgreSQL"],
|
|
visibility: "tailscale",
|
|
image: "/lab/paperless.jpg",
|
|
gitUrl: "https://git.georgew.dev/georgew/paperless-ngx",
|
|
|
|
uptimeId: 14,
|
|
},
|
|
{
|
|
id: "change-detection",
|
|
name: "Signal Watcher",
|
|
description:
|
|
"Automated monitoring for the essentials: NASA news updates, hobby stock alerts, and Telegram pings the second a new episode of 'The Traitors' drops.",
|
|
stack: ["Telegram API", "Webhooks"],
|
|
visibility: "tailscale",
|
|
image: "/lab/change-detection.jpg",
|
|
gitUrl: "https://git.georgew.dev/georgew/change-detection",
|
|
uptimeId: 15,
|
|
},
|
|
{
|
|
id: "ops-suite",
|
|
name: "System Operations",
|
|
description:
|
|
"The 'Engine Room.' Utilizing Portainer for orchestration, Dozzle for log streaming, and Watchtower for automated container lifecycle management across the Hetzner node.",
|
|
stack: ["Portainer", "Dozzle", "Watchtower"],
|
|
visibility: "tailscale",
|
|
image: "/lab/portainer.jpg",
|
|
},
|
|
{
|
|
id: "wikijs",
|
|
name: "System Wiki",
|
|
description:
|
|
"The 'Source of Truth' for the home infrastructure. Contains deployment guides, network maps, and disaster recovery procedures for the entire node.",
|
|
stack: ["Wiki.js", "Markdown"],
|
|
visibility: "tailscale",
|
|
image: "/lab/wikijs.jpg",
|
|
uptimeId: 5,
|
|
},
|
|
{
|
|
id: "dashboard",
|
|
name: "System Dashboard",
|
|
description:
|
|
"The central entry point for the GeorgeW ecosystem, used as my personal home page. A high-level overview providing unified access to all public and VPN-secured services.",
|
|
stack: ["Homepage", "Docker", "Reverse Proxy"],
|
|
visibility: "tailscale",
|
|
image: "/lab/dashboard.jpg",
|
|
},
|
|
];
|