Commit Graph

10 Commits

Author SHA1 Message Date
9deddca53a fix(hub): Fix NFO extraction for BusyBox awk compatibility
- Replace gsub(/[\[\]]/) with two sub() calls for section parsing
- Use explicit pattern matching for each NFO field
- Single-pass awk extraction for all 7 fields (category, desc, keywords, caps, audience, icon, version)
- Remove NFO parser library dependency (now uses direct awk)
- Simplify capability tracking with tr instead of for loop

Tested: 110 NFO entries now correctly extracted from 239 total items

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-14 10:10:01 +01:00
3f78308d2c feat(hub): Add HAProxy vhost scanning for complete service catalog
- Scan all HAProxy vhosts (243 total) in addition to MetaBlogizer/Streamlit
- New "service" type for HAProxy-only vhosts (purple theme)
- Backend-based categorization (jellyfin→Média, gitea→Développement, etc.)
- Stats bar shows Services count
- Category tabs include Services filter
- 236 total items now displayed (vs 3 before)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-14 09:10:26 +01:00
4ffa597c2a feat(hub): Enhance hub-generator v7 with NFO integration and preview
- MetaBlog NFO support: read descriptions, keywords, capabilities
- Version badges on cards with NFO version info
- Capability filter cloud: clickable capability badges
- Audience filter bar: filter by target audience
- Dynamic preview modal: click eye button to preview site in iframe
- Enhanced search: searches all NFO metadata fields
- NFO stats counter in stats bar

UI enhancements:
- Preview button appears on hover
- Modal with full-screen iframe preview
- ESC key and click-outside to close
- "Open in new tab" link in preview footer

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-14 09:06:53 +01:00
e17c73e343 feat(nfo): Add Module Manifest system with batch generation
Introduce flat-file UCI-style NFO manifest format for Streamlit apps
and MetaBlog sites. Enables AI context integration, search indexing,
and mesh publishing metadata.

New features:
- NFO parser library with parse/validate/update/export functions
- NFO validator with type-specific schema validation (streamlit/metablog)
- Batch generation: slforge nfo init-all, metablogizerctl nfo init-all
- RPCD methods: nfo_read, nfo_write, nfo_validate
- Reusable LuCI NFO viewer component with collapsible sections
- LuCI editor modal in Streamlit Forge overview
- Hub generator enhanced with NFO metadata (descriptions, capabilities)
- Metacatalog search with --category and --capability filters

New files:
- nfo-parser.sh, nfo-validator.sh (shell libraries)
- nfo-viewer.js (LuCI component)
- NFO-SPEC.md (specification)
- install.sh (universal NFO-based installer)
- nfo-template.nfo (templates for streamlit/metablog)

Deployed and tested: 136 NFO files generated (107 MetaBlogs, 29 Streamlit)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-14 08:51:09 +01:00
a2bc5dd7d8 fix(gk2hub): Use placeholder for empty TSV fields (BusyBox read compat)
BusyBox ash's read command collapses consecutive tab delimiters,
causing the protected field to end up in the wrong variable.

Fix: Use "-" as placeholder for empty fields, then strip it when reading.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-23 09:48:39 +01:00
c2de15f861 feat(gk2hub): Add authentication support for protected MetaBlogizer sites
- Add lock badge CSS for protected site cards
- Add login banner for unauthenticated users
- Detect auth_required flag from metablogizer UCI config
- Hide protected cards until sessionStorage token present
- Filter respects authentication state in search and category views

Works with secubox-core portal-auth system.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-23 09:40:53 +01:00
daacdb731c feat(talk-hpb): Add Nextcloud Talk High Performance Backend package
New package secubox-app-talk-hpb:
- Docker-based signaling server and Janus WebRTC gateway
- Auto-generates TURN/SIGNALING/INTERNAL secrets
- Creates HAProxy vhost with SSL/ACME
- STUN/TURN server with UDP+TCP support
- CLI tool: talk-hpbctl setup/status/test/logs

Hub generator v5:
- Add PeerTube videos with thumbnails and duration badges
- Fix Streamlit instance detection (=instance vs =app)
- Total count now: sites + streamlit + videos

MetaBlogizer fix:
- Add priority=50 to new vhosts to prevent wildcard catch

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-22 15:13:02 +01:00
8223692436 feat(gk2hub): Add dynamic hub generator v3 with categories and previews
- Multi-view portal with grid/list/compact modes
- Automatic site categorization (Intelligence, Dev, Finance, etc.)
- Iframe thumbnail previews of real site content
- Tag cloud and category tabs with emoji indicators
- Instant search by domain/name/category
- Auto-refresh via cron every 5 minutes
- Created explicit vhosts for 54 MetaBlogizer sites
- Fixed wildcard routing priority

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-22 09:41:45 +01:00
59d0e89a8c feat(gk2hub): Use subdomain URLs instead of redirect paths
- Infrastructure: media, localai, webmail, feed, tube, social, wazuh
- MetaBlogizer: HAProxy vhost lookup for automatic subdomain detection
- Added icons for new service types (tube, social, wazuh, etc.)
- 67 services now display with proper subdomain URLs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 17:01:54 +01:00
a472e755ea feat(gk2hub): Add GK2 Hub landing page generator package
New package secubox-app-gk2hub provides:
- /usr/bin/gk2hub-generate: Dynamic landing page generator
- /www/gk2-hub/index.html: Served via uhttpd

Aggregates services from:
- Streamlit instances (from UCI config)
- MetaBlogizer sites (from /srv/metablogizer/sites/)
- Infrastructure services (hardcoded)

Auto-regenerates on install via postinst script.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 14:41:53 +01:00