secubox-openwrt/package/secubox/secubox-p2p/Makefile
CyberMind-FR eec83efa13 feat(p2p): Add MirrorBox NetMesh Catalog with DNS federation
Implement distributed service catalog that discovers HAProxy vhosts
and provides multi-endpoint access URLs (haproxy/mesh/local). Add
dynamic DNS federation that auto-populates dnsmasq with mesh peer
hostnames (hostname.mesh.local).

New features:
- /factory/catalog API endpoint with service registry
- Catalog tab (📚) in Factory UI with endpoint filtering
- QR codes with URL type switching (haproxy/mesh/local)
- Linked mesh peers navigation panel
- DNS federation via /tmp/hosts/secubox-mesh
- CLI commands: dns-enable/disable/update, catalog sync/list/generate

Bumps secubox-p2p to v0.6.0.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 09:19:36 +01:00

98 lines
3.1 KiB
Makefile

include $(TOPDIR)/rules.mk
PKG_NAME:=secubox-p2p
PKG_VERSION:=0.6.0
PKG_RELEASE:=1
PKG_MAINTAINER:=SecuBox Team
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/secubox-p2p
SECTION:=secubox
CATEGORY:=SecuBox
TITLE:=SecuBox P2P Hub Backend
DEPENDS:=+jsonfilter +curl +avahi-daemon +avahi-utils +uhttpd
PKGARCH:=all
endef
define Package/secubox-p2p/description
SecuBox P2P Hub backend providing peer discovery, mesh networking,
DNS federation, and distributed service management. Includes mDNS
service announcement, REST API on port 7331 for mesh visibility,
SecuBox Factory unified dashboard with Ed25519 signed Merkle
snapshots for cryptographic configuration validation, distributed
mesh services panel for aggregated service discovery across all nodes,
and MirrorBox NetMesh Catalog for cross-chain distributed service
registry with HAProxy vhost discovery and multi-endpoint access URLs.
endef
define Package/secubox-p2p/conffiles
/etc/config/secubox-p2p
endef
define Build/Compile
endef
define Package/secubox-p2p/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) ./root/usr/sbin/secubox-p2p $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) ./root/usr/bin/secubox-restore $(1)/usr/bin/
$(INSTALL_DIR) $(1)/usr/libexec/rpcd
$(INSTALL_BIN) ./root/usr/libexec/rpcd/luci.secubox-p2p $(1)/usr/libexec/rpcd/
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./root/etc/config/secubox-p2p $(1)/etc/config/
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./root/etc/init.d/secubox-p2p $(1)/etc/init.d/
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./root/etc/uci-defaults/99-secubox-p2p-api $(1)/etc/uci-defaults/
$(INSTALL_DIR) $(1)/www/api
$(INSTALL_BIN) ./root/www/api/peers $(1)/www/api/
$(INSTALL_BIN) ./root/www/api/status $(1)/www/api/
$(INSTALL_BIN) ./root/www/api/services $(1)/www/api/
$(INSTALL_BIN) ./root/www/api/sync $(1)/www/api/
# Factory API endpoints
$(INSTALL_DIR) $(1)/www/api/factory
$(INSTALL_BIN) ./root/www/api/factory/dashboard $(1)/www/api/factory/
$(INSTALL_BIN) ./root/www/api/factory/tools $(1)/www/api/factory/
$(INSTALL_BIN) ./root/www/api/factory/run $(1)/www/api/factory/
$(INSTALL_BIN) ./root/www/api/factory/snapshot $(1)/www/api/factory/
$(INSTALL_BIN) ./root/www/api/factory/pubkey $(1)/www/api/factory/
$(INSTALL_BIN) ./root/www/api/factory/mesh-services $(1)/www/api/factory/
$(INSTALL_BIN) ./root/www/api/factory/catalog $(1)/www/api/factory/
# Factory Web UI
$(INSTALL_DIR) $(1)/www/factory
$(INSTALL_DATA) ./root/www/factory/index.html $(1)/www/factory/
# Factory library
$(INSTALL_DIR) $(1)/usr/lib/secubox
$(INSTALL_BIN) ./root/usr/lib/secubox/factory.sh $(1)/usr/lib/secubox/
endef
define Package/secubox-p2p/postinst
#!/bin/sh
[ -n "$${IPKG_INSTROOT}" ] || {
# Run UCI defaults
[ -x /etc/uci-defaults/99-secubox-p2p-api ] && /etc/uci-defaults/99-secubox-p2p-api
# Reload uhttpd to pick up new instance
/etc/init.d/uhttpd reload 2>/dev/null
# Enable and start P2P service
/etc/init.d/secubox-p2p enable
/etc/init.d/secubox-p2p start
/etc/init.d/rpcd restart
}
exit 0
endef
$(eval $(call BuildPackage,secubox-p2p))