Initial commit of Dynacat config, assets, and rules

This commit is contained in:
Jonah
2026-07-06 00:19:46 -05:00
commit 8a07b9f589
7 changed files with 1834 additions and 0 deletions
+379
View File
@@ -0,0 +1,379 @@
# ==============================================================================
# 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