Add four major features to enhance SecuBox AppStore: 1. Feed Source Management: - Feed types: published, unpublished, development - Share tokens for private feed access - CLI: secubox feed list/add/share/import - LuCI: Feed type badges and share URLs in catalog-sources 2. Profile Export/Import: - Export configurations with feed sources embedded - Import from URL or file with merge/replace modes - CLI: secubox profile export/import/share - LuCI: New profiles.js view with export/import dialogs 3. Skill System: - Capability discovery from module catalogs - Quality indicators based on provider count - CLI: secubox skill list/providers/install/check - LuCI: New skills.js view with provider browser 4. Feedback Loop: - Issue reporting and resolution tracking - Search existing resolutions - CLI: secubox feedback report/resolve/search/list - LuCI: New feedback.js view for knowledge base Technical changes: - RPCD backend with 17 new API methods - POSIX shell compatibility fixes (ESC via printf, tr A-Z a-z) - LuCI menu entries for new views Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
49 lines
2.0 KiB
INI
49 lines
2.0 KiB
INI
# SecuBox Feed HAProxy Configuration
|
|
# Exposes local package feed via HAProxy with health checks and Gitea mirror failover
|
|
# Copyright 2026 CyberMind <contact@cybermind.fr>
|
|
|
|
# ACL for secubox-feed requests
|
|
acl is_secubox_feed path_beg /secubox-feed
|
|
acl is_feed_health path /secubox-feed/health
|
|
|
|
# Use secubox-feed backend for matching requests
|
|
use_backend secubox_feed_backend if is_secubox_feed
|
|
|
|
# Backend: Local SecuBox Package Feed
|
|
backend secubox_feed_backend
|
|
mode http
|
|
balance roundrobin
|
|
option httpchk GET /secubox-feed/Packages
|
|
http-check expect status 200
|
|
|
|
# Local feed (primary) - served by uhttpd on localhost
|
|
server local_feed 127.0.0.1:80 check inter 30s fall 3 rise 2 weight 100
|
|
|
|
# Gitea mirror (fallback) - uses environment variable or default
|
|
# Set SECUBOX_GITEA_MIRROR in /etc/default/haproxy or haproxy.cfg
|
|
server gitea_mirror feed.maegia.tv:443 ssl verify none check inter 60s fall 3 rise 2 weight 50 backup
|
|
|
|
# GitHub releases mirror (secondary fallback)
|
|
server github_mirror raw.githubusercontent.com:443 ssl verify none check inter 120s fall 5 rise 2 weight 25 backup
|
|
|
|
# Health endpoint response
|
|
http-request return status 200 content-type "application/json" lf-string '{"status":"ok","feed":"secubox","timestamp":"%[date]"}' if is_feed_health
|
|
|
|
# CORS headers for cross-origin requests
|
|
http-response set-header Access-Control-Allow-Origin "*"
|
|
http-response set-header Access-Control-Allow-Methods "GET, HEAD, OPTIONS"
|
|
|
|
# Cache control for package lists
|
|
acl is_packages_file path_end /Packages /Packages.gz
|
|
http-response set-header Cache-Control "public, max-age=300" if is_packages_file
|
|
http-response set-header Cache-Control "public, max-age=86400" unless is_packages_file
|
|
|
|
# Compression for text content
|
|
compression algo gzip
|
|
compression type text/plain application/octet-stream
|
|
|
|
# Frontend snippet (add to main frontend or include)
|
|
# frontend https_frontend
|
|
# bind *:443 ssl crt /etc/haproxy/certs/
|
|
# use_backend secubox_feed_backend if is_secubox_feed
|