First Commit
This commit is contained in:
112
install_convoy.sh
Normal file
112
install_convoy.sh
Normal file
@@ -0,0 +1,112 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
### BASIC CHECKS ###
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "❌ Please run this script as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🔍 Detecting Linux distribution..."
|
||||
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
else
|
||||
echo "❌ Cannot detect Linux distribution"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
OS_ID="$ID"
|
||||
OS_VERSION="$VERSION_ID"
|
||||
|
||||
echo "🖥️ Detected: $PRETTY_NAME"
|
||||
|
||||
### DETERMINE PACKAGE MANAGER ###
|
||||
case "$OS_ID" in
|
||||
ubuntu|debian)
|
||||
PM="apt"
|
||||
;;
|
||||
almalinux|rocky|centos|rhel)
|
||||
PM="dnf"
|
||||
;;
|
||||
*)
|
||||
echo "❌ Unsupported OS: $OS_ID"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
### INSTALL DEPENDENCIES ###
|
||||
echo "📦 Installing base dependencies..."
|
||||
|
||||
if [ "$PM" = "apt" ]; then
|
||||
apt update
|
||||
apt install -y \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg \
|
||||
lsb-release \
|
||||
git
|
||||
elif [ "$PM" = "dnf" ]; then
|
||||
dnf install -y \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg2 \
|
||||
git
|
||||
fi
|
||||
|
||||
### INSTALL DOCKER ###
|
||||
if ! command -v docker >/dev/null 2>&1; then
|
||||
echo "🐳 Installing Docker..."
|
||||
|
||||
curl -fsSL https://get.docker.com | sh
|
||||
else
|
||||
echo "✅ Docker already installed"
|
||||
fi
|
||||
|
||||
systemctl enable docker
|
||||
systemctl start docker
|
||||
|
||||
### INSTALL DOCKER COMPOSE (PLUGIN) ###
|
||||
if ! docker compose version >/dev/null 2>&1; then
|
||||
echo "🔧 Installing Docker Compose plugin..."
|
||||
|
||||
mkdir -p /usr/local/lib/docker/cli-plugins
|
||||
|
||||
curl -SL https://github.com/docker/compose/releases/download/v2.25.0/docker-compose-linux-x86_64 \
|
||||
-o /usr/local/lib/docker/cli-plugins/docker-compose
|
||||
|
||||
chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
|
||||
else
|
||||
echo "✅ Docker Compose already installed"
|
||||
fi
|
||||
|
||||
### INSTALL CONVOY ###
|
||||
echo "🚀 Installing Convoy Panel..."
|
||||
|
||||
INSTALL_DIR="/opt/convoy"
|
||||
|
||||
if [ -d "$INSTALL_DIR" ]; then
|
||||
echo "❌ $INSTALL_DIR already exists"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git clone https://github.com/convoypanel/convoy.git "$INSTALL_DIR"
|
||||
cd "$INSTALL_DIR"
|
||||
|
||||
### ENV SETUP ###
|
||||
if [ ! -f .env ]; then
|
||||
cp .env.example .env
|
||||
echo "📝 Created .env file"
|
||||
fi
|
||||
|
||||
### START SERVICES ###
|
||||
echo "⚙️ Starting Convoy..."
|
||||
docker compose up -d
|
||||
|
||||
### DONE ###
|
||||
echo
|
||||
echo "✅ Convoy Panel installation complete!"
|
||||
echo "🌐 Access it via: http://YOUR_SERVER_IP"
|
||||
echo
|
||||
echo "ℹ️ Edit configuration: $INSTALL_DIR/.env"
|
||||
echo "🔁 Restart: docker compose restart"
|
||||
Reference in New Issue
Block a user