Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 16 additions & 35 deletions install.sh
Original file line number Diff line number Diff line change
@@ -1,87 +1,68 @@
#!/bin/bash

set -e

echo "================================"
echo " StreamFlow Quick Installer "
echo "================================"
echo

read -p "Mulai instalasi? (y/n): " -n 1 -r
echo
[[ ! $REPLY =~ ^[Yy]$ ]] && echo "Instalasi dibatalkan." && exit 1

echo "🔄 Updating sistem..."
sudo apt update && sudo apt upgrade -y

# Check dan install Node.js (minimal v18)
if command -v node &> /dev/null; then
NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
if [ "$NODE_VERSION" -ge 18 ]; then
echo "✅ Node.js sudah terinstall ($(node -v)), skip..."
else
echo "⚠️ Node.js versi $(node -v) terlalu lama, upgrade ke v18..."
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
fi
else
echo "📦 Installing Node.js v18..."
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
fi

# Check dan install FFmpeg
echo "📦 Installing nvm (Node Version Manager)..."
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
echo "📦 Installing Node.js LTS terbaru..."
nvm install --lts
nvm use --lts
nvm alias default 'lts/*'
echo "✅ Node.js $(node -v) berhasil diinstall"
if command -v ffmpeg &> /dev/null; then
echo "✅ FFmpeg sudah terinstall, skip..."
else
echo "🎬 Installing FFmpeg..."
sudo apt install ffmpeg -y
fi

# Check dan install Git
if command -v git &> /dev/null; then
echo "✅ Git sudah terinstall, skip..."
else
echo "🎬 Installing Git..."
echo "🔧 Installing Git..."
sudo apt install git -y
fi

echo "📥 Clone repository..."
git clone https://github.com/bangtutorial/streamflow
cd streamflow

echo "⚙️ Installing dependencies..."
npm install
npm run generate-secret

echo "🕐 Setup timezone ke Asia/Jakarta..."
sudo timedatectl set-timezone Asia/Jakarta

echo "🔧 Setup firewall..."
sudo ufw allow ssh
sudo ufw allow 7575
sudo ufw --force enable

# Check dan install PM2
if command -v pm2 &> /dev/null; then
echo "✅ PM2 sudah terinstall, skip..."
else
echo "🚀 Installing PM2..."
sudo npm install -g pm2
npm install -g pm2
fi

export PATH="$NVM_DIR/versions/node/$(nvm current)/bin:$PATH"
echo "▶️ Starting StreamFlow..."
pm2 start app.js --name streamflow
pm2 save

pm2 startup | tail -1 | bash || true
echo
echo "================================"
echo "✅ INSTALASI SELESAI!"
echo "================================"

SERVER_IP=$(curl -s ifconfig.me 2>/dev/null || echo "IP_SERVER")
echo
echo "🌐 URL Akses: http://$SERVER_IP:7575"
echo "📦 Node.js: $(node -v)"
echo "📦 npm: $(npm -v)"
echo
echo "📋 Langkah selanjutnya:"
echo "1. Buka URL di browser"
Expand Down