#!/bin/bash # Network Packet Capture - Installation Script # This script installs system dependencies and Node.js packages set -e echo "==================================" echo "Network Packet Capture - Installer" echo "==================================" echo "" # Check if running as root if [ "$EUID" -eq 0 ]; then SUDO="" else SUDO="sudo" fi # Detect OS if [ -f /etc/os-release ]; then . /etc/os-release OS=$ID else OS=$(uname -s) fi echo "Detected OS: $OS" echo "" # Install system dependencies echo "Installing system dependencies..." case $OS in ubuntu|debian|linuxmint) echo "Installing libpcap-dev and build-essential..." $SUDO apt-get update $SUDO apt-get install -y libpcap-dev build-essential ;; fedora|rhel|centos) echo "Installing libpcap-devel and development tools..." $SUDO yum install -y libpcap-devel gcc-c++ make ;; arch|manjaro) echo "Installing libpcap and base-devel..." $SUDO pacman -S --noconfirm libpcap base-devel ;; Darwin) echo "Installing Xcode Command Line Tools..." xcode-select --install || echo "Xcode tools already installed" ;; *) echo "Warning: Unknown OS. Please install libpcap development libraries manually." echo "For Debian/Ubuntu: sudo apt-get install libpcap-dev build-essential" echo "For RHEL/CentOS: sudo yum install libpcap-devel gcc-c++ make" exit 1 ;; esac echo "" echo "System dependencies installed successfully!" echo "" # Install Node.js dependencies echo "Installing Node.js dependencies..." npm install echo "" echo "==================================" echo "Installation completed successfully!" echo "==================================" echo "" echo "Next steps:" echo "1. Configure your settings: cp .env.example .env && nano .env" echo "2. Make sure Elasticsearch is running" echo "3. Run the capture: sudo npm start" echo ""