secubox-openwrt/DOCS/WEBSITE_DEPLOYMENT_GUIDE.md
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

7.9 KiB

SecuBox Website Deployment Guide

Version: 1.0 Date: 2025-12-28

Overview

This guide explains how to deploy the SecuBox marketing/documentation website to an OpenWrt router, making it accessible locally for help and documentation purposes.

Prerequisites

  • OpenWrt router with SSH access
  • SecuBox website files (from secubox-website repository)
  • Network connectivity to router
  • Sufficient storage space on router (approx. 1-2 MB)

Deployment Script

Location

secubox-openwrt/secubox-tools/deploy-website.sh

Usage

Basic Deployment

# Deploy to default router (192.168.1.1)
./secubox-tools/deploy-website.sh

# Deploy to specific router
./secubox-tools/deploy-website.sh root@192.168.8.191

# Deploy from specific website directory
./secubox-tools/deploy-website.sh root@192.168.8.191 /path/to/secubox-website

Full Example

cd /home/reepost/CyberMindStudio/_files/secubox-openwrt

# Deploy website to router at 192.168.8.191
./secubox-tools/deploy-website.sh root@192.168.8.191 ../secubox-website

What the Script Does

  1. Prepares Files - Creates compressed archive excluding:

    • .git directory
    • .claude directory
    • Markdown files (*.md)
    • README and LICENSE files
  2. Creates Backup - Backs up existing website if present

  3. Deploys Files - Uploads and extracts to /www/luci-static/secubox/

  4. Sets Permissions - Ensures proper file permissions:

    • Directories: 755
    • HTML files: 644
    • JavaScript files: 644
    • CSS files: 644
  5. Cleanup - Removes temporary files

Website Structure on Router

Directory Layout

/www/luci-static/secubox/
├── index.html (main landing page)
├── campaign.html
├── demo-*.html (module demos)
├── dev-status-widget.js
├── i18n.js
├── i18n/
│   └── *.json (language files)
└── blog/
    └── *.html (blog posts)

Access URLs

After deployment, the website is accessible at:

  • Local Router: http://[router-ip]/luci-static/secubox/
  • Example: http://192.168.8.191/luci-static/secubox/

Individual Pages

  • Main: http://192.168.8.191/luci-static/secubox/index.html
  • System Hub: http://192.168.8.191/luci-static/secubox/demo-secubox-hub.html
  • Network Modes: http://192.168.8.191/luci-static/secubox/demo-network-modes.html
  • Client Guardian: http://192.168.8.191/luci-static/secubox/demo-client-guardian.html
  • etc.

Deployment Workflow

1. Update Website Content

# Navigate to website directory
cd /home/reepost/CyberMindStudio/_files/secubox-website

# Edit files as needed
# Test locally if possible

2. Deploy to Router

# Navigate to OpenWrt directory
cd /home/reepost/CyberMindStudio/_files/secubox-openwrt

# Deploy
./secubox-tools/deploy-website.sh root@192.168.8.191

3. Verify Deployment

# Check files on router
ssh root@192.168.8.191 "ls -la /www/luci-static/secubox/"

# Test access via browser
curl http://192.168.8.191/luci-static/secubox/index.html

Manual Deployment (Alternative)

If the script doesn't work, you can deploy manually:

# 1. Create tarball
cd /path/to/secubox-website
tar czf /tmp/secubox-website.tar.gz \
  --exclude='.git' \
  --exclude='.claude' \
  --exclude='*.md' \
  .

# 2. Upload to router
scp /tmp/secubox-website.tar.gz root@192.168.8.191:/tmp/

# 3. Extract on router
ssh root@192.168.8.191 << 'EOF'
mkdir -p /www/luci-static/secubox
cd /www/luci-static/secubox
tar xzf /tmp/secubox-website.tar.gz
chmod 755 .
find . -type d -exec chmod 755 {} \;
find . -type f -name "*.html" -exec chmod 644 {} \;
find . -type f -name "*.js" -exec chmod 644 {} \;
rm /tmp/secubox-website.tar.gz
EOF

# 4. Cleanup
rm /tmp/secubox-website.tar.gz

Troubleshooting

Issue: "No route to host"

Solution: Verify router IP address is correct

ping 192.168.8.191

Issue: "Permission denied"

Solution: Ensure SSH access is configured

# Test SSH connection
ssh root@192.168.8.191 "echo 'Connected'"

Issue: "Not enough space"

Solution: Check available storage

ssh root@192.168.8.191 "df -h /www"

# If needed, clear cache
ssh root@192.168.8.191 "rm -rf /tmp/luci-*"

Issue: "Files not accessible via HTTP"

Solution: Check web server status

ssh root@192.168.8.191 "/etc/init.d/uhttpd status"
ssh root@192.168.8.191 "/etc/init.d/uhttpd restart"

Issue: "404 Not Found"

Solution: Verify files exist and check permissions

ssh root@192.168.8.191 "ls -la /www/luci-static/secubox/ | head -20"

Integration with Modules

Once deployed, modules can link to the help pages:

// Example: Link to help in a module
var helpUrl = '/luci-static/secubox/demo-network-modes.html';
var helpButton = E('a', {
    'href': helpUrl,
    'target': '_blank',
    'class': 'btn'
}, 'Help');

See HELP_INTEGRATION_PLAN.md for detailed integration guide.

Maintenance

Updating Website

To update the website after making changes:

# 1. Edit files in secubox-website/
cd /home/reepost/CyberMindStudio/_files/secubox-website
# ... make changes ...

# 2. Redeploy
cd ../secubox-openwrt
./secubox-tools/deploy-website.sh root@192.168.8.191

Rollback

If deployment fails, restore from backup:

ssh root@192.168.8.191 << 'EOF'
# Find latest backup
BACKUP=$(ls -t /tmp/secubox-website-backup-* | head -1)
if [ -n "$BACKUP" ]; then
  rm -rf /www/luci-static/secubox/*
  cp -a $BACKUP/* /www/luci-static/secubox/
  echo "Restored from $BACKUP"
fi
EOF

Remove Website

To completely remove the website:

ssh root@192.168.8.191 "rm -rf /www/luci-static/secubox"

Performance Optimization

Enable Compression (Optional)

Configure uhttpd to serve compressed content:

ssh root@192.168.8.191 << 'EOF'
# Add gzip compression to uhttpd config
uci set uhttpd.main.compression='1'
uci commit uhttpd
/etc/init.d/uhttpd restart
EOF

Cache Headers (Optional)

Add cache headers for static assets:

ssh root@192.168.8.191 << 'EOF'
# Create .htaccess-like configuration for caching
# (requires additional uhttpd configuration)
EOF

Security Considerations

Access Control

The website is publicly accessible on the router's LAN. To restrict access:

# Option 1: Firewall rules (restrict to specific IPs)
ssh root@192.168.8.191 << 'EOF'
# Add firewall rules as needed
EOF

# Option 2: HTTP authentication (requires uhttpd configuration)

Content Security

  • Website contains only static HTML/CSS/JavaScript
  • No server-side execution
  • No database connections
  • No sensitive data exposure

Automated Deployment

Cron Job (Optional)

To auto-deploy on schedule:

# Add to router crontab
ssh root@192.168.8.191 "crontab -e"

# Add line (example: deploy daily at 3 AM):
# 0 3 * * * cd /tmp && wget http://server/secubox-website.tar.gz && tar xzf secubox-website.tar.gz -C /www/luci-static/secubox/

Git Hook (Advanced)

Deploy automatically on git push:

# In secubox-website/.git/hooks/post-commit
#!/bin/bash
cd /home/reepost/CyberMindStudio/_files/secubox-openwrt
./secubox-tools/deploy-website.sh root@192.168.8.191

Monitoring

Check Deployment Status

# Verify files
ssh root@192.168.8.191 "find /www/luci-static/secubox -type f | wc -l"

# Check disk usage
ssh root@192.168.8.191 "du -sh /www/luci-static/secubox"

# View access logs (if logging enabled)
ssh root@192.168.8.191 "logread | grep uhttpd"
  • Help Integration: HELP_INTEGRATION_PLAN.md
  • Module Development: LUCI_DEVELOPMENT_REFERENCE.md
  • Deployment Scripts: secubox-tools/deploy-*.sh

Support

For issues or questions:

  1. Check troubleshooting section above
  2. Review router logs: ssh root@router "logread"
  3. Test network connectivity
  4. Verify file permissions

Changelog

v1.0 (2025-12-28)

  • Initial deployment script
  • Documentation created
  • Tested on router 192.168.8.191
  • Supports automatic website directory detection