74 lines
2.0 KiB
Bash
74 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
# DNSBlock Agent Installer
|
|
|
|
INSTALL_DIR="/opt/dnsblock"
|
|
SOURCE_DIR=$(pwd)
|
|
|
|
# Check root using id -u (compatible with sh/dash)
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
echo "Please run as root"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Installing DNSBlock Agent..."
|
|
|
|
# Check for Python 3
|
|
if ! command -v python3 &> /dev/null; then
|
|
echo "Error: python3 is not installed."
|
|
exit 1
|
|
fi
|
|
|
|
# Try to install python3-venv and python3-pip if apt is available
|
|
if command -v apt-get &> /dev/null; then
|
|
echo "Checking system dependencies..."
|
|
apt-get update
|
|
apt-get install -y python3-venv python3-pip
|
|
fi
|
|
|
|
# Create Directory
|
|
mkdir -p "$INSTALL_DIR"
|
|
|
|
# Copy Files
|
|
cp "$SOURCE_DIR/main.py" "$INSTALL_DIR/"
|
|
cp "$SOURCE_DIR/requirements.txt" "$INSTALL_DIR/"
|
|
|
|
# Setup Virtual Environment
|
|
if [ ! -d "$INSTALL_DIR/venv" ] || [ ! -f "$INSTALL_DIR/venv/bin/pip" ]; then
|
|
echo "Creating virtual environment..."
|
|
python3 -m venv "$INSTALL_DIR/venv"
|
|
|
|
if [ $? -ne 0 ] || [ ! -f "$INSTALL_DIR/venv/bin/pip" ]; then
|
|
echo "Error: Failed to create virtual environment."
|
|
echo "Please ensure python3-venv is installed (e.g., apt install python3-venv)"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Install Dependencies
|
|
echo "Installing dependencies..."
|
|
"$INSTALL_DIR/venv/bin/pip" install -r "$INSTALL_DIR/requirements.txt"
|
|
|
|
# Create Config if not exists
|
|
if [ ! -f "$INSTALL_DIR/config.json" ]; then
|
|
echo "Creating default config..."
|
|
cat <<EOF > "$INSTALL_DIR/config.json"
|
|
{
|
|
"serial_key": "YOUR_SERIAL_KEY_HERE",
|
|
"api_url": "https://seu-painel.com",
|
|
"rpz_file": "/opt/dnsblock/rpz.dnsblock.zone"
|
|
}
|
|
EOF
|
|
echo "Config file created at $INSTALL_DIR/config.json. Please edit it with your Serial Key and API URL."
|
|
fi
|
|
|
|
# Setup Systemd Service
|
|
echo "Setting up systemd service..."
|
|
cp "$SOURCE_DIR/dnsblock-agent.service" /etc/systemd/system/
|
|
systemctl daemon-reload
|
|
systemctl enable dnsblock-agent
|
|
|
|
echo "Installation Complete!"
|
|
echo "1. Edit /opt/dnsblock/config.json"
|
|
echo "2. Start service: systemctl start dnsblock-agent"
|