Files
crawl4ai/deploy/installer/sync-cnode.sh
unclecode cd02616218 feat(cnode): add standalone CLI for Docker server management
- Reorganized server management code:
  - Moved server_cli.py -> deploy/docker/cnode_cli.py
  - Moved server_manager.py -> deploy/docker/server_manager.py

- Created fast Python-based installation (0.1s startup):
  - deploy/installer/cnode_pkg/ - Standalone package
  - deploy/installer/install-cnode.sh - Local installer
  - deploy/installer/deploy.sh - Remote installer for users

- Added backward compatibility:
  - crawl4ai/cli.py: 'crwl server' redirects to 'cnode'
  - Updated tests to match new CLI structure (12/12 passing)

- Automated sync workflow:
  - .githooks/pre-commit - Auto-syncs source to package
  - setup-hooks.sh - One-time setup for contributors
  - deploy/installer/sync-cnode.sh - Manual sync script

Performance:
  - Startup time: 0.1s (49x faster than PyInstaller)
  - Size: ~50KB wrapper vs 8.8MB binary

Commands:
  cnode start [--replicas N]  # Start server/cluster
  cnode status                # Check status
  cnode scale N               # Scale replicas
  cnode logs [-f]             # View logs
  cnode stop                  # Stop server
2025-10-21 09:31:18 +08:00

34 lines
960 B
Bash
Executable File

#!/bin/bash
# Sync cnode source code to installer package
# Run this before committing changes to cnode
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SOURCE_DIR="$SCRIPT_DIR/../docker"
PKG_DIR="$SCRIPT_DIR/cnode_pkg"
echo "🔄 Syncing cnode source to package..."
# Copy CLI
echo " → Copying cnode_cli.py to cli.py"
cp "$SOURCE_DIR/cnode_cli.py" "$PKG_DIR/cli.py"
# Fix imports
echo " → Fixing imports (deploy.docker → cnode_pkg)"
sed -i '' 's/from deploy\.docker\./from cnode_pkg./g' "$PKG_DIR/cli.py"
# Copy server manager
echo " → Copying server_manager.py"
cp "$SOURCE_DIR/server_manager.py" "$PKG_DIR/server_manager.py"
echo "✅ Sync complete!"
echo ""
echo "Files updated:"
echo " • deploy/installer/cnode_pkg/cli.py"
echo " • deploy/installer/cnode_pkg/server_manager.py"
echo ""
echo "Next steps:"
echo " 1. Test: cd deploy/installer && ./install-cnode.sh"
echo " 2. Commit both source and package files"