bvandeusen
fa318073f1
chore: move plugins/ to separate repo, gitignore the directory
...
plugins/ is now tracked at bvandeusen/fabledscryer-plugins.
Removed tracked traefik files from this repo's index (files remain on disk).
Added plugins/ to .gitignore so the directory is ignored going forward.
PLUGIN_DIR in config.yaml still points to plugins/ for local dev and Docker.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-22 18:33:22 -04:00
bvandeusen
230b542015
feat: rename to FabledScryer, multi-dashboard system, plugin management, branding
...
- Rename package fablednetmon → fabledscryer throughout
- Multi-dashboard: ownership, per-user defaults, HTMX edit (add/remove/reorder)
- Read-only share tokens scoped to individual dashboards
- Dashboard edit is HTMX-driven (no page reloads)
- Plugin management system: remote catalog, download/install, hot-reload, in-app restart
- plugin_index.py: fetch/cache remote index.yaml; default URL → bvandeusen/fabledscryer-plugins
- plugin_manager.py: download_and_install_plugin, hot_reload_plugin, restart_app
- ZIP extraction handles GitHub archive formats (name-v1.0.0/, name-main/)
- Settings split into tabbed sections: General, Notifications, Ansible, Plugins
- Plugins tab: catalog browser (HTMX), install/activate/update/restart actions
- UI/branding: dark palette (#07071a), crystal ball SVG logo, animated star field,
Libertinus Serif applied to headings, nav, labels, and section titles
- Widget registry (core/widgets.py) for dashboard plugin integration
- UPS widget.html (dashboard card) and settings/_tabs.html include
- Migrations 0005–0008: dashboards, is_default, ownership, share tokens
- docs/plugins/: writing-a-plugin.md updated with publishing guide,
index.yaml.example template for fabledscryer-plugins repo
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-22 18:27:56 -04:00
bvandeusen
165a202ba4
feat: UI redesign (CSS system, DNS widget, Traefik dashboard widget)
...
- Replace base.html style block with full CSS design system using custom properties (dark theme, cards, tables, badges, dots, widgets)
- Add DNS blueprint (fablednetmon/dns/) with /dns/ and /dns/rows routes + templates
- Add Traefik /widget route and widget.html fragment for dashboard
- Update dashboard: DNS + Traefik widgets, traefik_enabled config detection
- Update all templates to use new CSS classes (page-title, section-title, card-flush, table, badge-*, dot-*, btn-*)
- Register dns_bp in app.py
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 23:37:46 -04:00
bvandeusen
d29c5b3eab
fix: suppress debconf frontend warnings during apt-get install
2026-03-18 23:25:44 -04:00
bvandeusen
a3a05070e7
fix: upgrade pip, run as non-root user, remove stale FABLEDNETMON_CONFIG env
2026-03-18 23:23:52 -04:00
bvandeusen
7a7ed2185a
feat: live ping pill widget (dashboard + /ping/ page with threshold settings)
2026-03-18 23:18:26 -04:00
bvandeusen
791af2d58f
feat: ping/DNS status and latency in hosts list and dashboard summary
2026-03-18 23:09:49 -04:00
bvandeusen
c26552b670
fix: install iputils-ping in Docker image for ICMP ping support
2026-03-18 23:03:58 -04:00
bvandeusen
d8eacffd48
fix: env.py reads FABLEDNETMON_DATABASE_URL and honors URL set by migration_runner
2026-03-18 22:40:05 -04:00
bvandeusen
f9ea87187b
test: update test_config.py for load_bootstrap API
2026-03-18 22:31:17 -04:00
bvandeusen
242398dc52
chore: remove config.yaml mount from docker-compose; update config example
...
- Replace individual volume mounts (playbook_cache, plugins) with single app_data:/data mount
- Change FABLEDNETMON_DATABASE__URL to FABLEDNETMON_DATABASE_URL (underscore to hyphen)
- Simplify config.example.yaml to focus on required database URL setting
- Document that other settings are now managed via the Settings UI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 20:36:26 -04:00
bvandeusen
dfb433e779
feat: settings UI (admin-only, live-updates app.config)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 20:35:39 -04:00
bvandeusen
c5dff7ec8c
feat: two-phase migrations, DB settings loading in create_app
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 20:33:36 -04:00
bvandeusen
03bbd8d0fa
feat: strip config.py to bootstrap only (db_url + auto-gen secret_key)
2026-03-18 20:32:02 -04:00
bvandeusen
80ce703a15
feat: settings service (get/set/load helpers, load_settings_sync)
2026-03-18 20:29:52 -04:00
bvandeusen
e6fa8baed1
feat: AppSetting model and migration 0004
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 20:22:23 -04:00
bvandeusen
38416b412a
fix: dockerfile install order; add .dockerignore; update .gitignore
2026-03-18 19:57:05 -04:00
bvandeusen
4cc83c8a19
fix: use relative imports in traefik plugin to prevent double-registration; resolve PLUGIN_DIR path
2026-03-18 18:46:02 -04:00
bvandeusen
2164ea28f2
feat: traefik UI (per-router dashboard with SVG sparklines)
2026-03-18 18:43:05 -04:00
bvandeusen
aacfcd420e
feat: traefik scrape task (delta tracking, DB write, record_metric)
2026-03-18 18:38:54 -04:00
bvandeusen
8ea2b09d05
fix: cap percentile at last finite bucket when target falls in open +Inf bucket
2026-03-18 18:38:03 -04:00
bvandeusen
c336f1f774
feat: traefik prometheus scraper (parse, compute rates and percentiles)
2026-03-17 21:37:34 -04:00
bvandeusen
0af38016cd
feat: traefik plugin migration (traefik_001_initial, depends_on core head)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-17 21:34:40 -04:00
bvandeusen
6fde57f63e
feat: traefik plugin scaffold (plugin.yaml, model, __init__ stub)
2026-03-17 21:32:14 -04:00
bvandeusen
13f2a6f2d6
fix: preserve enabled key in merged plugin config; revert trailing slash on url_prefix
2026-03-17 21:31:11 -04:00
bvandeusen
400e0ee1b4
fix: use trailing slash in plugin blueprint url_prefix
2026-03-17 21:29:38 -04:00
bvandeusen
c6b3672a49
feat: add plugin manager (load, validate, register plugins)
2026-03-17 21:28:37 -04:00
bvandeusen
ae57f2f9da
fix: always set version_locations explicitly in migration runner
2026-03-17 21:27:43 -04:00
bvandeusen
415fe7eba9
feat: add migration runner and wire into create_app
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-17 21:12:06 -04:00
bvandeusen
763cbda3ac
feat: wire ansible blueprint, startup interrupted-run marker, git-pull task, cleanup
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-17 20:33:14 -04:00
bvandeusen
60e2040284
fix: ansible routes validation, SSE dedup, scoped querySelector, status_color fallback
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-17 20:31:17 -04:00
bvandeusen
94e0f20f98
feat: add ansible routes and templates (browse, run, stream, detail)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-17 20:27:51 -04:00
bvandeusen
2fd9d331d6
feat: add ansible executor with SSE broadcast and DB flush
2026-03-17 20:23:34 -04:00
bvandeusen
b7fba8ab5e
fix: validate required url/path fields in get_sources
2026-03-17 20:22:52 -04:00
bvandeusen
90aaf8f80c
feat: add ansible source discovery (local + git)
2026-03-17 20:20:48 -04:00
bvandeusen
c18b707093
feat: add AnsibleRun model and migration 0003
2026-03-17 20:17:56 -04:00
bvandeusen
7dbb662c38
feat: wire monitors, scheduler, alerts, and nav into app
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-17 20:01:31 -04:00
bvandeusen
75b0233c94
feat: alert rules and active alerts UI
2026-03-17 19:57:53 -04:00
bvandeusen
3f3f55b83f
feat: host management UI (CRUD)
2026-03-17 19:57:51 -04:00
bvandeusen
1ef4983de6
feat: data retention cleanup task
2026-03-17 19:50:58 -04:00
bvandeusen
fd380b1024
feat: ping and DNS monitor coroutines
2026-03-17 19:50:49 -04:00
bvandeusen
7fe686d366
feat: email and webhook notification dispatch
2026-03-17 19:50:25 -04:00
bvandeusen
4d81a50d7c
feat: record_metric() and alert state machine
2026-03-17 19:46:18 -04:00
bvandeusen
c8d7b8c043
feat: core scheduler and migrations utility
2026-03-17 19:45:47 -04:00
bvandeusen
00c65457a0
feat: migration 0002 for hosts, monitors, metrics, and alert tables
2026-03-17 19:43:51 -04:00
bvandeusen
97199a9d94
fix: add explicit ondelete behavior to alert FK references
2026-03-17 19:42:56 -04:00
bvandeusen
cdcf00a1cf
feat: data models for hosts, monitors, metrics, and alerts
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-17 19:41:37 -04:00
bvandeusen
2408a80489
feat: Docker and systemd deployment files
2026-03-17 19:09:06 -04:00
bvandeusen
686fc2b1e1
feat: base layout and auth/dashboard templates
2026-03-17 19:08:46 -04:00
bvandeusen
6ca25e94a0
feat: session auth, role middleware, login/setup/logout routes
2026-03-17 19:06:06 -04:00