Commit Graph

61 Commits

Author SHA1 Message Date
admin 717d173408 updated DB query and build instructions 2026-02-16 11:19:18 +01:00
admin aea86f8fe2 docs: update CONTEXT.md for v0.5.1 session
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 11:03:09 +01:00
admin b19682a767 fix(monitoring): hostname, tooltip timestamps, default range (v0.5.1)
- Bug 1: Read hostname from /host/etc/hostname instead of os.Hostname()
  which returns the container ID inside Docker. Added volume mount.
- Bug 2: Tooltip callback used parsed.x (category index) instead of
  label (actual timestamp), showing 1970 dates.
- Bug 3+4: Default range changed from 24h to 1h so charts show data
  immediately on new deployments with limited history.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 11:01:08 +01:00
admin b43ccf698a v0.5.1: Monitoring Page Bugfixes 2026-02-16 10:59:16 +01:00
admin 1934d40f85 docs: update CONTEXT.md for v0.5.0 session
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 10:23:17 +01:00
admin 3f30803432 fix(dashboard): use GetFullStatus for backup display after restart
The dashboard was using GetStatus() which returns nil after restart,
showing "Még nem futott" even when backups exist. Now uses
GetFullStatus() with synthesis logic, matching the backups page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 10:20:14 +01:00
admin 3e8baebfa5 v0.5.0: Backup bugfixes + monitoring page with metrics store
- Fix "Helyi mentés" showing "–" after controller restart by synthesizing
  LastBackup from snapshot history and LastDBDump from dump files on disk
- New monitoring page (/monitoring) with system info, metrics charts, and
  container resource overview
- SQLite metrics store (modernc.org/sqlite, pure Go, no CGO) with 60s
  collection interval and 30-day auto-prune
- REST API endpoints: /api/metrics/system, /api/metrics/containers/summary,
  /api/metrics/containers/{name}, /api/metrics/sysinfo
- Chart.js 4.4.7 embedded locally for offline environments
- System info provider reads hostname, OS, kernel, CPU, uptime from /proc
- Docker compose updated with /etc/os-release host mount

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 10:14:46 +01:00
admin 87e79548b0 v0.5.0: Backup Bugfixes + Monitoring Page with Metrics Store 2026-02-16 10:01:43 +01:00
admin 0e1fbe1972 Update CONTEXT.md for v0.4.7 session
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 09:04:40 +01:00
admin 3be989f665 v0.4.7: Protected stack detail pages + backup page caching
Task 1: Protected stacks with .felhom.yml (slug) are now clickable
on both dashboard and stacks pages. "Részletek" button added to
protected stack actions section. Filebrowser .felhom.yml updated
with resources metadata.

Task 2: Backup page now reads from a cached FullBackupStatus that
refreshes every 5 minutes in background + after each backup run.
Page loads instantly instead of blocking on restic/docker subprocesses.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 09:02:54 +01:00
admin 79da0b88aa v0.4.7: Protected Stack Detail Pages + Backup Page Caching 2026-02-16 08:58:34 +01:00
admin eb7ae1323f Update CONTEXT.md for v0.4.6 session
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 08:48:08 +01:00
admin fd627f3d55 v0.4.6: MariaDB validation fix + dashboard deployed-only + protected stack restart
- Fix ValidateDump() to scan first 10 lines for header (MariaDB 11.4+ sandbox comment)
- Dashboard shows only deployed/protected stacks, heading "Telepített alkalmazások"
- Protected stacks show restart button when operational (both dashboard + stacks page)
- API blocks all actions except restart on protected stacks
- docker-setup.sh creates .felhom.yml for FileBrowser (subdomain: files)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 08:44:34 +01:00
admin 24a2150520 v0.4.6: MariaDB Validation Fix + Dashboard & Protected Stack UX 2026-02-16 08:40:29 +01:00
admin 15e9dffb85 Update CONTEXT.md for v0.4.5 session
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 07:45:19 +01:00
admin 37ff296a0d v0.4.5: Add dedicated Backup page (Biztonsági mentés)
New /backups page with full backup system visibility:
- Status overview cards (local/remote backup, DB count, repo size)
- Schedule section with next-run times and retention policy
- Database table with type, size, validation (table count), status
- Snapshot history table with per-snapshot stats
- Repository info card with paths, integrity status, remote placeholder
- "Mentés most" button with auto-refresh polling
- Empty state when backup not configured

Backend: SnapshotRecord history (ring buffer), DumpValidation,
ListDumpFiles, ListSnapshots, GetFullStatus, restic check tracking.
Server accepts scheduler for next-run time calculation.

Sidebar nav updated with 3rd item, dashboard backup card title clickable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 07:43:24 +01:00
admin 0985339e6c TASK.md — v0.4.5: Dedicated Backup Page ("Biztonsági mentés") 2026-02-16 07:35:23 +01:00
admin 599560454b docs: update CONTEXT.md for v0.4.1 session
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:21:40 +01:00
admin d51e67f199 v0.4.1: app filtering + clickable dashboard stat cards
Add filter bar (Mind/Futó/Leállítva/Telepíthető) to Alkalmazások page with
URL-based filter persistence. Dashboard stat cards are now clickable links
that navigate to the filtered stacks view.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:19:26 +01:00
admin 0753adec6a TASK.md — v0.4.1: App Filtering + Bugfixes 2026-02-15 12:12:59 +01:00
admin 1596e86e69 docs: update CONTEXT.md and README.md for v0.4.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:20:30 +01:00
admin d32d9fb44b v0.4.0: monitoring & backup — scheduler, CPU/temp metrics, healthchecks, restic backups
Phase 2 (Monitoring & Health):
- Central job scheduler replacing ad-hoc goroutines (internal/scheduler)
- CPU usage collector via /proc/stat background sampling (internal/system/cpu_linux.go)
- Temperature reading from /sys/class/thermal + /host/sys (Docker mount)
- Load average from /proc/loadavg
- Healthchecks.io-compatible HTTP pinger (internal/monitor/pinger.go)
- System health checks: disk, memory, CPU, temp, Docker, protected containers (internal/monitor/healthcheck.go)

Phase 3 (Backups):
- Database auto-discovery via docker ps + docker inspect (internal/backup/dbdump.go)
- Database dumping via docker exec (pg_dump / mariadb-dump) with atomic writes
- Restic backup integration with auto-password generation (internal/backup/restic.go)
- Backup orchestrator: DB dumps + restic snapshots + weekly prune (internal/backup/backup.go)
- Manual backup trigger via dashboard button and POST /api/backup/run

Dashboard UI:
- CPU usage bar with load average display
- Temperature with colored indicator dot
- Backup status card with last run time, DB count, repo stats
- "Mentés most" button for manual backup trigger

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:17:10 +01:00
admin 8a988c5998 TASK.md — Phase 2: Monitoring & Health + Phase 3: Backups 2026-02-15 11:01:30 +01:00
admin 57cacd9233 v0.3.0: structural refactor — go:embed templates, server split, domain rename
- Migrate all 7 HTML templates + CSS from Go string constants to individual
  go:embed files in internal/web/templates/ (templates.go: 2150→35 lines)
- Split server.go into auth.go, handlers.go, funcmap.go (server.go: 540→120 lines)
- Rename controller subdomain from dashboard.* to felhom.* in Traefik labels
- Update documentation (CLAUDE.md, README.md, CONTEXT.md)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:38:06 +01:00
admin b30c01ac9e updated TASK for refactoring 2026-02-15 10:23:02 +01:00
admin 63d81088bd update CONTEXT.md for session 8 — orphan detection, filebrowser infra
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:05:19 +01:00
admin 59ed4bd1c2 feat: orphan stack detection/deletion, filebrowser infra, setup scripts
- Add orphan detection: stacks not in catalog marked as "Elavult"
- Add DELETE /api/stacks/{name} endpoint with HDD data handling
- Add GET /api/stacks/{name}/hdd-data endpoint
- Add delete confirmation modal with HDD data checkbox (Hungarian UI)
- Add filebrowser to protected stacks list
- Add scripts/hdd-setup.sh and scripts/docker-setup.sh for node setup
- Hide "Frissítés" and "Részletek" buttons for orphaned stacks

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:03:10 +01:00
admin a5c6899e2c updated TASK.md 2026-02-15 09:39:50 +01:00
admin c4fa121932 update CONTEXT.md for session 7 — YAML parse fix, error logging
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:51:45 +01:00
admin 3caceb3b47 remove temporary debug log from LoadMetadata, keep error log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:50:05 +01:00
admin 68c67dafe6 add error logging to LoadMetadata, fix deploy sed command
- Log YAML parse errors in LoadMetadata instead of silently swallowing
- Add debug log for successful metadata loads (tagline, useCases, optConfig counts)
- Fix CLAUDE.md deploy command: use sudo, target only image: line in sed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:46:58 +01:00
admin 54ccf40066 updated TASK.md for debugging and build commands fix 2026-02-14 20:45:34 +01:00
admin e7a5f118bf update CONTEXT.md for session 6 — logo CSS fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:32:25 +01:00
admin ee2a0307a7 fix: constrain app-info-logo SVG to 80x80 bounds
Add min/max width/height and overflow:hidden to .app-info-logo CSS
to prevent SVG images from ignoring container dimensions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:29:56 +01:00
admin 55d7b7d370 updated TASK.md - logo resize, app info missing 2026-02-14 20:27:49 +01:00
admin 658b995e53 Update documentation for app info pages feature
- CONTEXT.md: session 5 with app detail/info pages + optional config
- README.md: add optional-config API endpoint, update version to 0.2.11
- CLAUDE.md: add app info page patterns to key patterns section

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:15:56 +01:00
admin 6080170367 Add app detail/info pages with optional config support
- New route: GET /apps/{slug} renders info page with use cases, setup guide, prerequisites
- New API: POST /api/stacks/{name}/optional-config for updating optional env vars
- New structs: AppInfo, OptionalConfigGroup, OptionalConfigField in metadata.go
- UpdateOptionalConfig saves to app.yaml and restarts deployed stacks with new env vars
- Info page template with hero section, screenshots, info cards, optional config form
- Navigation: stack cards now link to /apps/{slug}, deploy page has "Részletek" link

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:12:18 +01:00
admin 528f64cab7 updated CLAUDE.md and TASK.md 2026-02-14 20:00:24 +01:00
admin a8096faf59 added fix for deployment race condition 2026-02-14 19:17:01 +01:00
admin 0be798af5d updated startup monitoring 2026-02-14 18:57:20 +01:00
admin c3b80cffdc bugfix 2026-02-14 18:25:12 +01:00
admin e0e8e88276 GUI updates, live log visibility 2026-02-14 17:55:14 +01:00
admin 9d7a36a143 added more detailed debug logging 2026-02-14 17:33:33 +01:00
admin 85aa518208 updated 2026-02-14 17:13:09 +01:00
admin ee8650a41c implemented git sync for app templates 2026-02-14 13:40:00 +01:00
admin 44a7d0de2c updated memory calculation and logo 2026-02-14 12:41:08 +01:00
admin 6a7737ee1c added mem_request 2026-02-14 12:07:10 +01:00
admin 67ba0fe759 Added memory limits and system info for memory 2026-02-14 11:44:06 +01:00
admin e0e15867e9 added .eu 2026-02-14 11:19:10 +01:00
admin 4a19fda795 added some info 2026-02-14 11:15:53 +01:00