- 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
34 lines
960 B
Bash
Executable File
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"
|