secubox-openwrt/secubox-tools/deploy-website.sh
CyberMind-FR 6314884f00 feat: Add help system integration and fix menu structure
- Created help system (help.js, help.css) for all modules
- Integrated help button in network-modes module
- Fixed menu structure: removed empty Network Management category
- Fixed all dashboard and modules page links
- Added website deployment script
- Created comprehensive documentation

New Files:
- DOCS/HELP_INTEGRATION_PLAN.md
- DOCS/WEBSITE_DEPLOYMENT_GUIDE.md
- EXAMPLES/help-button-integration.js
- luci-app-secubox/htdocs/luci-static/resources/secubox/help.js
- luci-app-secubox/htdocs/luci-static/resources/secubox/help.css
- secubox-tools/deploy-website.sh

Modified:
- luci-app-network-modes: Added help button integration
- luci-app-secubox: Fixed menu paths and module links

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 16:29:04 +01:00

100 lines
2.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# Deploy SecuBox website to an OpenWrt router.
# Usage: ./secubox-tools/deploy-website.sh [root@192.168.1.1] [/path/to/website]
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
ROUTER_HOST="${1:-root@192.168.8.191}"
WEBSITE_PATH="${2:-}"
TARGET_DIR="/www/luci-static/secubox"
# Determine website source path
if [[ -z "$WEBSITE_PATH" ]]; then
# Check common locations
COMMON_PATHS=(
"$REPO_ROOT/../secubox-website"
"$HOME/CyberMindStudio/_files/secubox-website"
"./secubox-website"
)
for path in "${COMMON_PATHS[@]}"; do
if [[ -d "$path" ]]; then
WEBSITE_PATH="$path"
break
fi
done
if [[ -z "$WEBSITE_PATH" ]]; then
echo "ERROR: Website directory not found. Please specify path as second argument." >&2
echo "Usage: $0 [router_host] [website_path]" >&2
exit 1
fi
fi
if [[ ! -d "$WEBSITE_PATH" ]]; then
echo "ERROR: Website directory not found: $WEBSITE_PATH" >&2
exit 1
fi
echo "[1/4] Preparing website files from $WEBSITE_PATH" >&2
# Create tarball excluding unnecessary files
TARBALL="/tmp/secubox-website-$(date +%s).tar.gz"
(cd "$WEBSITE_PATH" && tar czf "$TARBALL" \
--exclude='.git' \
--exclude='.claude' \
--exclude='*.md' \
--exclude='.gitignore' \
--exclude='README*' \
--exclude='LICENSE' \
.)
echo "[2/4] Uploading website files to $ROUTER_HOST:$TARGET_DIR/" >&2
scp "$TARBALL" "${ROUTER_HOST}:/tmp/secubox-website.tar.gz"
echo "[3/4] Deploying website on router…" >&2
ssh "$ROUTER_HOST" "sh -s" <<EOF
set -e
# Create target directory
mkdir -p "$TARGET_DIR"
# Backup existing website if present
if [ -d "$TARGET_DIR" ] && [ "\$(ls -A $TARGET_DIR)" ]; then
BACKUP_DIR="/tmp/secubox-website-backup-\$(date +%s)"
echo "[router] Creating backup at \$BACKUP_DIR…" >&2
mkdir -p "\$BACKUP_DIR"
cp -a "$TARGET_DIR"/* "\$BACKUP_DIR/" 2>/dev/null || true
fi
# Extract new website
echo "[router] Extracting website files…" >&2
cd "$TARGET_DIR"
tar xzf /tmp/secubox-website.tar.gz
# Set proper permissions
chmod 755 "$TARGET_DIR"
find "$TARGET_DIR" -type d -exec chmod 755 {} \;
find "$TARGET_DIR" -type f -name "*.html" -exec chmod 644 {} \;
find "$TARGET_DIR" -type f -name "*.js" -exec chmod 644 {} \;
find "$TARGET_DIR" -type f -name "*.css" -exec chmod 644 {} \; 2>/dev/null || true
# Clean up
rm -f /tmp/secubox-website.tar.gz
echo "[router] Website deployed to $TARGET_DIR"
echo "[router] Access URL: http://\$(uci get network.lan.ipaddress 2>/dev/null || echo 'router-ip')/luci-static/secubox/"
EOF
echo "[4/4] Cleaning up local tarball…" >&2
rm -f "$TARBALL"
echo ""
echo "✓ Website deployment completed successfully!"
echo " Target: $ROUTER_HOST:$TARGET_DIR"
echo " Files: $(find "$WEBSITE_PATH" -type f \( -name "*.html" -o -name "*.js" \) | wc -l) files deployed"
echo ""