380 lines
14 KiB
YAML
380 lines
14 KiB
YAML
# ==============================================================================
|
|
# Dynacat Homelab Dashboard Configuration
|
|
# ==============================================================================
|
|
# Place this file at: /opt/dynacat/config/dynacat.yml
|
|
# ==============================================================================
|
|
|
|
server:
|
|
host: 0.0.0.0
|
|
port: 8080
|
|
assets-path: /opt/dynacat/assets
|
|
db-path: /opt/dynacat/data/dynacat.db
|
|
|
|
theme:
|
|
background-color: 50 1 6
|
|
primary-color: 24 97 58
|
|
negative-color: 209 88 54
|
|
custom-css-file: /assets/jonah-theme.css
|
|
|
|
pages:
|
|
# ============================================================================
|
|
# PAGE 1: NAVIGATOR & BOOKMARKS (Restructured to 3 columns using split layout)
|
|
# ============================================================================
|
|
- name: Home
|
|
columns:
|
|
# Column 1: Calendar, Weather, and Wastebin
|
|
- size: small
|
|
widgets:
|
|
- type: calendar
|
|
first-day-of-week: sunday
|
|
|
|
- type: weather
|
|
location: "La Crosse"
|
|
units: imperial
|
|
|
|
- type: iframe
|
|
title: "📝 Wastebin Quick Paste"
|
|
source: "https://scratch.jonahlahona.com"
|
|
height: 250
|
|
|
|
# Column 2: Search and Bookmarks
|
|
- size: full
|
|
widgets:
|
|
- type: search
|
|
autofocus: true
|
|
placeholder: Search...
|
|
search-engine: google
|
|
bangs:
|
|
- title: YouTube
|
|
shortcut: "!yt"
|
|
url: https://www.youtube.com/results?search_query={QUERY}
|
|
- title: GitHub
|
|
shortcut: "!gh"
|
|
url: https://github.com/search?q={QUERY}
|
|
|
|
- type: split-column
|
|
max-columns: 2
|
|
widgets:
|
|
- type: bookmarks
|
|
groups:
|
|
- title: 🌐 Core Infrastructure
|
|
links:
|
|
- title: Proxmox VE
|
|
url: https://192.168.1.35:8006
|
|
icon: si:proxmox
|
|
same-tab: true
|
|
- title: NGINX Proxy Manager
|
|
url: http://192.168.1.44:81
|
|
icon: si:nginx
|
|
same-tab: true
|
|
- title: Home Assistant
|
|
url: https://6avbbjjhs3egemnj8kibuebv2bo7qr2q.ui.nabu.casa/
|
|
icon: si:homeassistant
|
|
same-tab: true
|
|
- title: Pi-hole
|
|
url: http://192.168.1.37/admin
|
|
icon: si:pihole
|
|
same-tab: true
|
|
|
|
- title: 📚 Media & Entertainment
|
|
links:
|
|
- title: Audiobookshelf
|
|
url: https://books.jonahlahona.com
|
|
icon: si:audiobookshelf
|
|
same-tab: true
|
|
- title: RomM (Retro ROMs)
|
|
url: https://retro.jonahlahona.com
|
|
icon: mdi:controller-classic
|
|
same-tab: true
|
|
- title: Pixelfed
|
|
url: https://family.jonahlahona.com
|
|
icon: si:pixelfed
|
|
same-tab: true
|
|
- title: Jackett
|
|
url: http://192.168.1.93:9117
|
|
icon: /assets/jackett.svg
|
|
same-tab: true
|
|
|
|
- title: 🎮 Gaming
|
|
links:
|
|
- title: AMP Game Panel
|
|
url: https://game.jonahlahona.com
|
|
icon: mdi:gamepad-variant
|
|
same-tab: true
|
|
|
|
- title: 📁 Files & Storage
|
|
links:
|
|
- title: OxiCloud
|
|
url: https://file.jonahlahona.com
|
|
icon: mdi:cloud
|
|
same-tab: true
|
|
- title: Gitea
|
|
url: https://git.jonahlahona.com
|
|
icon: si:gitea
|
|
same-tab: true
|
|
|
|
- type: bookmarks
|
|
groups:
|
|
- title: 🛠️ Utilities & Pantry
|
|
links:
|
|
- title: Grocy Pantry
|
|
url: https://pantry.jonahlahona.com
|
|
icon: mdi:food-apple
|
|
same-tab: true
|
|
- title: KaraKeep Notes
|
|
url: https://keep.jonahlahona.com
|
|
icon: si:googlekeep
|
|
same-tab: true
|
|
- title: Vaultwarden
|
|
url: https://key.jonahlahona.com
|
|
icon: si:vaultwarden
|
|
same-tab: true
|
|
- title: Zipline Uploads
|
|
url: https://zip.jonahlahona.com
|
|
icon: si:sharex
|
|
same-tab: true
|
|
- title: Wastebin Paste
|
|
url: https://scratch.jonahlahona.com
|
|
icon: mdi:trash-can-outline
|
|
same-tab: true
|
|
- title: MyIP
|
|
url: http://192.168.1.168:11966
|
|
icon: mdi:ip-network
|
|
same-tab: true
|
|
- title: Transmute Converter
|
|
url: https://convert.jonahlahona.com
|
|
icon: mdi:swap-horizontal
|
|
same-tab: true
|
|
|
|
- title: 🌐 Web & Social
|
|
links:
|
|
- title: YouTube
|
|
url: https://www.youtube.com
|
|
icon: si:youtube
|
|
same-tab: true
|
|
- title: Reddit
|
|
url: https://www.reddit.com
|
|
icon: si:reddit
|
|
same-tab: true
|
|
- title: Twitter / X
|
|
url: https://x.com
|
|
icon: si:x
|
|
same-tab: true
|
|
- title: Gmail
|
|
url: https://mail.google.com
|
|
icon: si:gmail
|
|
same-tab: true
|
|
- title: Google Keep
|
|
url: https://keep.google.com
|
|
icon: si:googlekeep
|
|
same-tab: true
|
|
- title: Google Gemini
|
|
url: https://gemini.google.com
|
|
icon: si:googlegemini
|
|
same-tab: true
|
|
- title: Humble Bundle
|
|
url: https://www.humblebundle.com
|
|
icon: si:humblebundle
|
|
same-tab: true
|
|
- title: Mega.nz
|
|
url: https://mega.nz
|
|
icon: si:mega
|
|
same-tab: true
|
|
- title: Associated Bank
|
|
url: https://www.associatedbank.com
|
|
icon: mdi:bank
|
|
same-tab: true
|
|
|
|
# Column 3: Information Feeds
|
|
- size: small
|
|
widgets:
|
|
# - type: iframe
|
|
# title: "⚙️ LXC Container Controls"
|
|
# source: "https://6avbbjjhs3egemnj8kibuebv2bo7qr2q.ui.nabu.casa/lovelace-lxc/default_view?kiosk"
|
|
# height: 280
|
|
|
|
- type: rss
|
|
title: Tech News
|
|
limit: 10
|
|
animate: true
|
|
feeds:
|
|
- url: https://selfh.st/rss/
|
|
title: Selfh.st
|
|
- url: https://www.howtogeek.com/feed/news/
|
|
title: How-To Geek
|
|
- url: https://www.xda-developers.com/feed/news/
|
|
title: XDA Developers
|
|
- url: https://www.makeuseof.com/feed/category/news/
|
|
title: MakeUseOf
|
|
- url: https://hackaday.com/blog/feed/
|
|
title: Hackaday
|
|
|
|
|
|
- type: rss
|
|
title: World & US News
|
|
limit: 12
|
|
animate: true
|
|
feeds:
|
|
- url: https://feeds.bbci.co.uk/news/world/rss.xml
|
|
title: BBC World News
|
|
- url: https://feeds.npr.org/1001/rss.xml
|
|
title: NPR News
|
|
- url: https://feeds.reuters.com/reuters/topNews
|
|
title: Reuters
|
|
- url: https://feeds.npr.org/1014/rss.xml
|
|
title: NPR Politics
|
|
- url: https://thehill.com/rss/syndicator/19109
|
|
title: The Hill
|
|
|
|
# ============================================================================
|
|
# PAGE 2: APPLICATION ANALYTICS & MONITORING
|
|
# ============================================================================
|
|
- name: Status & Analytics
|
|
columns:
|
|
# Left Column: Storage & Pantry Stats
|
|
- size: small
|
|
widgets:
|
|
# Grocy API Stats
|
|
- type: custom-api
|
|
title: "🛒 Grocy Pantry Overview"
|
|
url: "https://pantry.jonahlahona.com/api/chores"
|
|
cache: 5m
|
|
headers:
|
|
GROCY-API-KEY: "your_grocy_token_here"
|
|
template: |
|
|
<div class="flex flex-col gap-2">
|
|
<div class="flex justify-between">
|
|
<span class="color-subdue">Chores Configured:</span>
|
|
<span class="weight-semibold">{{ len .JSON }}</span>
|
|
</div>
|
|
<div class="color-subdue text-sm">
|
|
Generate tokens in Grocy under Settings ➔ Manage API keys.
|
|
</div>
|
|
</div>
|
|
|
|
# Zipline API Stats
|
|
- type: custom-api
|
|
title: "📁 Zipline Upload Stats"
|
|
url: "https://zip.jonahlahona.com/api/user/statistics"
|
|
cache: 10m
|
|
headers:
|
|
authorization: "your_zipline_token_here"
|
|
template: |
|
|
<div class="flex flex-col gap-2">
|
|
<div class="flex justify-between">
|
|
<span class="color-subdue">Total Uploads:</span>
|
|
<span class="weight-semibold">{{ .JSON.Int "uploads" }}</span>
|
|
</div>
|
|
<div class="flex justify-between">
|
|
<span class="color-subdue">Storage Used:</span>
|
|
<span class="weight-semibold">{{ .JSON.String "size" }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
# Middle Column: Active Media & Game Servers
|
|
- size: full
|
|
widgets:
|
|
# Audiobookshelf API Stats
|
|
- type: custom-api
|
|
title: "📚 Audiobookshelf Sessions"
|
|
url: "https://books.jonahlahona.com/api/activity"
|
|
cache: 30s
|
|
headers:
|
|
Authorization: "Bearer your_audiobookshelf_token_here"
|
|
template: |
|
|
<div class="flex flex-col gap-2">
|
|
<div class="weight-semibold text-sm">Active Listening Stream:</div>
|
|
<ul class="list">
|
|
{{ range .JSON.Array "activities" }}
|
|
<li class="flex justify-between items-center py-1">
|
|
<span>{{ .String "description" }}</span>
|
|
<span class="color-subdue text-xs">{{ .String "time" }}</span>
|
|
</li>
|
|
{{ else }}
|
|
<li class="color-subdue py-1 text-center">No active listeners</li>
|
|
{{ end }}
|
|
</ul>
|
|
</div>
|
|
|
|
# AMP Game Server Monitor
|
|
- type: custom-api
|
|
title: "🎮 AMP Game Servers"
|
|
url: "https://game.jonahlahona.com/api/Core/GetAPISpec"
|
|
cache: 1m
|
|
template: |
|
|
<div class="flex flex-col gap-2">
|
|
<div class="flex justify-between">
|
|
<span class="color-subdue">Status:</span>
|
|
<span class="color-green weight-semibold">Online</span>
|
|
</div>
|
|
<div class="flex justify-between">
|
|
<span class="color-subdue">Active Instances:</span>
|
|
<span>Configured via AMP Console</span>
|
|
</div>
|
|
</div>
|
|
|
|
# Right Column: Server Stats, Retro Gaming & Proxmox Health
|
|
- size: small
|
|
widgets:
|
|
- type: server-stats
|
|
servers:
|
|
- type: local
|
|
name: Dynacat LXC
|
|
|
|
# RomM API Stats
|
|
- type: custom-api
|
|
title: "🕹️ RomM Library Metrics"
|
|
url: "https://retro.jonahlahona.com/api/v1/games/stats"
|
|
cache: 10m
|
|
headers:
|
|
Authorization: "Bearer your_romm_token_here"
|
|
template: |
|
|
<div class="flex flex-col gap-2">
|
|
<div class="flex justify-between">
|
|
<span class="color-subdue">Total Games:</span>
|
|
<span class="weight-semibold">{{ .JSON.Int "total" }}</span>
|
|
</div>
|
|
<div class="flex justify-between">
|
|
<span class="color-subdue">Platforms:</span>
|
|
<span>{{ .JSON.Int "platforms" }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
# # Home Assistant - Proxmox LXC Health Check
|
|
# - type: custom-api
|
|
# title: "🔌 Proxmox LXC Memory"
|
|
# url: "https://6avbbjjhs3egemnj8kibuebv2bo7qr2q.ui.nabu.casa/api/states/sensor.proxmox_lxc_audiobookshelf_memory_usage"
|
|
# cache: 1m
|
|
# headers:
|
|
# Authorization: "Bearer your_home_assistant_token_here"
|
|
# template: |
|
|
# <div class="flex flex-col gap-2">
|
|
# <div class="flex justify-between">
|
|
# <span class="color-subdue">Audiobookshelf Memory:</span>
|
|
# <span class="weight-semibold">{{ .JSON.String "state" }}%</span>
|
|
# </div>
|
|
# <div class="color-subdue text-xs">
|
|
# Uses Home Assistant variables.
|
|
# </div>
|
|
# </div>
|
|
|
|
# Pi-hole Ad-blocking Stats
|
|
- type: dns-stats
|
|
title: "🛡️ Pi-hole Stats"
|
|
service: pihole
|
|
url: "http://192.168.1.37"
|
|
token: "your_pihole_token_here"
|
|
|
|
# ============================================================================
|
|
# PAGE 3: PORTAL NEWS
|
|
# ============================================================================
|
|
- name: News
|
|
columns:
|
|
- size: full
|
|
widgets:
|
|
- type: iframe
|
|
title: "📰 Tech News Portal"
|
|
source: "/assets/news.html?v=10"
|
|
height: 720
|
|
|