---
# https://gethomepage.dev/latest/configs/settings
title: ... all my base ...
theme: dark
color: slate
background:
  image: https://w.wallhaven.cc/full/p9/wallhaven-p9gr2p.jpg
  blur: sm
  opacity: 20
headerStyle: boxedWidgets

providers:
  openweathermap: openweathermapapikey
  weatherapi: weatherapiapikey

quicklaunch:
  searchDescriptions: true
  hideInternetSearch: true
  showSearchSuggestions: true
  hideVisitURL: true

showStats: false
statusStyle: ""

# Force all cards in a row to match the tallest card's height. Without
# this, widget-bearing cards (Plex stats, Traefik metrics) stand taller
# than plain link cards and the grid looks ragged.
useEqualHeights: true

# Function-first layout, four-tab split:
#   Main           - daily-use apps, media, bookmarks, monitoring
#   AI             - the inference fleet, grouped by role (see below)
#   Infrastructure - hardware, hypervisors, BMCs (per site)
#   Toolchain      - backend services running but rarely clicked
#
# The AI tab splits the fleet by function so a 20+ service list reads as
# sorted groups instead of one endless column. Group membership is set by
# the homepage.group=AI - <role> label on each service's compose file:
#   AI - Inference        LLM seats you call (gen, char-rp, char-rp-reasoning, summarizer)
#   AI - Eval & Retrieval judges, reward, rerank, embed, image-quality
#   AI - Gateways & Chat  routing gateway, control plane, chat frontends
#   AI - Speech (TTS)     text-to-speech engines
#   AI - Audio Tools      speech-to-text + audio dataset tooling
#   AI - Image & Media    image/video generation + pipelines
#   AI - Dormant          stopped stacks (rollback seats, retired auditions)
#
# Row counts target ~4-per-row so dense groups (Apps, Service Networking)
# read as a grid instead of an endless column.
layout:
  Notes:
    icon: mdi-note-text-outline
    tab: Main
    style: row
    columns: 4
  News:
    icon: mdi-rss
    tab: Main
    style: row
    columns: 4
  Monitoring:
    icon: mdi-chart-line
    tab: Main
    style: row
    columns: 4
  Apps:
    icon: mdi-apps
    tab: Main
    style: row
    columns: 4
  Media:
    icon: mdi-play-box-multiple
    tab: Main
    style: row
    columns: 3
  Games:
    icon: mdi-gamepad-square
    tab: Main
  UltraSeedbox:
    icon: si-bittorrent
    tab: Main
    style: row
    columns: 3
  # --- AI tab: the inference fleet, ordered core-models -> support -> apps ---
  AI - Inference:
    icon: mdi-brain
    tab: AI
    style: row
    columns: 4
  AI - Eval & Retrieval:
    icon: mdi-scale-balance
    tab: AI
    style: row
    columns: 5
  AI - Gateways & Chat:
    icon: mdi-router-network
    tab: AI
    style: row
    columns: 3
  AI - Speech (TTS):
    icon: mdi-account-voice
    tab: AI
    style: row
    columns: 3
  AI - Audio Tools:
    icon: mdi-waveform
    tab: AI
    style: row
    columns: 2
  AI - Image & Media:
    icon: mdi-image-multiple
    tab: AI
    style: row
    columns: 2
  # Stopped stacks kept for rollback / superseded seats / retired auditions.
  # They stay 'created' (not running) via `docker compose up --no-start`, so
  # they show here as offline cards and revive with `docker compose start`.
  AI - Dormant:
    icon: mdi-sleep
    tab: AI
    style: row
    columns: 4
  Infra - ANA:
    icon: si-proxmox
    tab: Infrastructure
    style: row
    columns: 4
  Infra - NH3:
    icon: si-proxmox
    tab: Infrastructure
    style: row
    columns: 4
  Infra - IRV:
    icon: mdi-brain
    tab: Infrastructure
    style: row
    columns: 4
  Infra - ESH:
    icon: si-proxmox
    tab: Infrastructure
    style: row
    columns: 4
  Service Networking:
    icon: mdi-transit-connection-variant
    tab: Toolchain
    style: row
    columns: 4
  Toolchain:
    icon: mdi-toolbox
    tab: Toolchain
    style: row
    columns: 4
