deploy.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/bin/bash
  2. # ============================================================
  3. # Deployment script for Hikvision ISUP Client
  4. # ============================================================
  5. set -e
  6. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  7. PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
  8. INSTALL_DIR="/usr/local/bin"
  9. CONFIG_DIR="/etc/hikvision-isup"
  10. BINARY_NAME="${1:-hikvision-isup-client}"
  11. echo "=== Deploying $BINARY_NAME ==="
  12. # Check if binary exists
  13. if [ ! -f "$PROJECT_DIR/$BINARY_NAME" ]; then
  14. echo "Binary not found: $PROJECT_DIR/$BINARY_NAME"
  15. echo "Running make first..."
  16. cd "$PROJECT_DIR"
  17. make
  18. fi
  19. # Create config directory
  20. sudo mkdir -p "$CONFIG_DIR"
  21. # Install binary
  22. sudo install -m 755 "$PROJECT_DIR/$BINARY_NAME" "$INSTALL_DIR/$BINARY_NAME"
  23. echo "Binary installed to $INSTALL_DIR/$BINARY_NAME"
  24. # Copy config
  25. if [ -f "$PROJECT_DIR/config.ini" ]; then
  26. sudo cp "$PROJECT_DIR/config.ini" "$CONFIG_DIR/config.ini"
  27. echo "Config copied to $CONFIG_DIR/config.ini"
  28. fi
  29. # Create necessary directories
  30. sudo mkdir -p /var/log/hikvision-isup
  31. sudo mkdir -p /var/lib/hikvision-isup/recordings
  32. sudo mkdir -p /var/lib/hikvision-isup/sim_images
  33. # Create systemd service file
  34. sudo tee "/etc/systemd/system/hikvision-isup-client.service" > /dev/null << 'EOF'
  35. [Unit]
  36. Description=Hikvision ISUP Client - Platform Registration and Stream Management
  37. After=network.target
  38. [Service]
  39. Type=simple
  40. User=root
  41. WorkingDirectory=/opt/hikvision-isup
  42. ExecStart=/usr/local/bin/hikvision-isup-client -c /etc/hikvision-isup/config.ini -d
  43. Restart=on-failure
  44. RestartSec=5
  45. StandardOutput=journal
  46. StandardError=journal
  47. [Install]
  48. WantedBy=multi-user.target
  49. EOF
  50. echo "Systemd service file created"
  51. echo ""
  52. echo "To enable and start the service:"
  53. echo " sudo systemctl daemon-reload"
  54. echo " sudo systemctl enable hikvision-isup-client"
  55. echo " sudo systemctl start hikvision-isup-client"
  56. echo ""
  57. echo "To check status:"
  58. echo " sudo systemctl status hikvision-isup-client"
  59. echo " journalctl -u hikvision-isup-client -f"
  60. echo ""
  61. echo "=== Deployment complete ==="