Files
esh-pfi-infrastructure/configs/homepage/settings.yaml
T
vh 6c96ffef01 stacks/miniflux: self-hosted RSS reader + News group on homepage
Adds Miniflux on ana-docker as the unified inbox for tech blogs,
Hacker News, lobste.rs, and selected subreddits. Reddit serves clean
RSS for any sub at https://reddit.com/r/<sub>/.rss, so subreddit
follows fold into the same inbox as everything else — no Reddit
account needed, no manual polling.

Stack:
  stacks/miniflux/
    compose.yaml          — miniflux + bundled postgres:16
    .env.example          — placeholders for DB password + admin user
    starter-feeds.opml    — initial subscriptions (HN, Lobste.rs,
                            r/selfhosted, r/homelab, r/LocalLLaMA, r/nba)
    README.md             — deploy / OPML import / r/nba spoiler
                            block-list / backup / update flow

Postgres bundled with the stack (not pfi-postgres) — single-user RSS
DB is tiny and the bundle keeps the dependency graph flat.

Homepage gets a new 'News' group at the TOP of the Main tab (above
Monitoring) so the Miniflux card sits prominently. The card itself
auto-discovers via the homepage.* labels on the miniflux container.

Per-feed block-list rule for r/nba documented in README — Reddit's
RSS titles for game threads include scores ("Lakers 108 - Warriors
102 [Final]") which spoil the game; a regex catches the score
patterns and skips those entries while keeping discussion/highlights.

Deploy:
  scripts/elway ana-docker --playbook playbooks/deploy-miniflux.yaml

Then edit /opt/docker/compose/miniflux/.env on the host to fill in
the two CHANGE_ME passwords and `docker compose up -d` again.
2026-04-26 11:52:50 -07:00

101 lines
2.1 KiB
YAML

---
# 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, three-tab split:
# Main - daily-use apps, inference, media, bookmarks
# Infrastructure - hardware, hypervisors, BMCs (per site)
# Toolchain - backend services running but rarely clicked
#
# Row counts target ~4-per-row so dense groups (Apps, Service Networking)
# read as a grid instead of an endless column.
layout:
News:
icon: mdi-rss
tab: Main
style: row
columns: 4
Monitoring:
icon: mdi-chart-line
tab: Main
style: row
columns: 4
AI Systems:
icon: mdi-brain
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
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