|
1 | 1 | #!/bin/bash |
2 | | - |
3 | 2 | set -e |
4 | | - |
5 | 3 | echo "================================" |
6 | 4 | echo " StreamFlow Quick Installer " |
7 | 5 | echo "================================" |
8 | 6 | echo |
9 | | - |
10 | 7 | read -p "Mulai instalasi? (y/n): " -n 1 -r |
11 | 8 | echo |
12 | 9 | [[ ! $REPLY =~ ^[Yy]$ ]] && echo "Instalasi dibatalkan." && exit 1 |
13 | | - |
14 | 10 | echo "🔄 Updating sistem..." |
15 | 11 | sudo apt update && sudo apt upgrade -y |
16 | | - |
17 | | -# Check dan install Node.js (minimal v18) |
18 | | -if command -v node &> /dev/null; then |
19 | | - NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1) |
20 | | - if [ "$NODE_VERSION" -ge 18 ]; then |
21 | | - echo "✅ Node.js sudah terinstall ($(node -v)), skip..." |
22 | | - else |
23 | | - echo "⚠️ Node.js versi $(node -v) terlalu lama, upgrade ke v18..." |
24 | | - curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - |
25 | | - sudo apt-get install -y nodejs |
26 | | - fi |
27 | | -else |
28 | | - echo "📦 Installing Node.js v18..." |
29 | | - curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - |
30 | | - sudo apt-get install -y nodejs |
31 | | -fi |
32 | | - |
33 | | -# Check dan install FFmpeg |
| 12 | +echo "📦 Installing nvm (Node Version Manager)..." |
| 13 | +curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash |
| 14 | +export NVM_DIR="$HOME/.nvm" |
| 15 | +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" |
| 16 | +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" |
| 17 | +echo "📦 Installing Node.js LTS terbaru..." |
| 18 | +nvm install --lts |
| 19 | +nvm use --lts |
| 20 | +nvm alias default 'lts/*' |
| 21 | +echo "✅ Node.js $(node -v) berhasil diinstall" |
34 | 22 | if command -v ffmpeg &> /dev/null; then |
35 | 23 | echo "✅ FFmpeg sudah terinstall, skip..." |
36 | 24 | else |
37 | 25 | echo "🎬 Installing FFmpeg..." |
38 | 26 | sudo apt install ffmpeg -y |
39 | 27 | fi |
40 | | - |
41 | | -# Check dan install Git |
42 | 28 | if command -v git &> /dev/null; then |
43 | 29 | echo "✅ Git sudah terinstall, skip..." |
44 | 30 | else |
45 | | - echo "🎬 Installing Git..." |
| 31 | + echo "🔧 Installing Git..." |
46 | 32 | sudo apt install git -y |
47 | 33 | fi |
48 | | - |
49 | 34 | echo "📥 Clone repository..." |
50 | 35 | git clone https://github.com/bangtutorial/streamflow |
51 | 36 | cd streamflow |
52 | | - |
53 | 37 | echo "⚙️ Installing dependencies..." |
54 | 38 | npm install |
55 | 39 | npm run generate-secret |
56 | | - |
57 | 40 | echo "🕐 Setup timezone ke Asia/Jakarta..." |
58 | 41 | sudo timedatectl set-timezone Asia/Jakarta |
59 | | - |
60 | 42 | echo "🔧 Setup firewall..." |
61 | 43 | sudo ufw allow ssh |
62 | 44 | sudo ufw allow 7575 |
63 | 45 | sudo ufw --force enable |
64 | | - |
65 | | -# Check dan install PM2 |
66 | 46 | if command -v pm2 &> /dev/null; then |
67 | 47 | echo "✅ PM2 sudah terinstall, skip..." |
68 | 48 | else |
69 | 49 | echo "🚀 Installing PM2..." |
70 | | - sudo npm install -g pm2 |
| 50 | + npm install -g pm2 |
71 | 51 | fi |
72 | | - |
| 52 | +export PATH="$NVM_DIR/versions/node/$(nvm current)/bin:$PATH" |
73 | 53 | echo "▶️ Starting StreamFlow..." |
74 | 54 | pm2 start app.js --name streamflow |
75 | 55 | pm2 save |
76 | | - |
| 56 | +pm2 startup | tail -1 | bash || true |
77 | 57 | echo |
78 | 58 | echo "================================" |
79 | 59 | echo "✅ INSTALASI SELESAI!" |
80 | 60 | echo "================================" |
81 | | - |
82 | 61 | SERVER_IP=$(curl -s ifconfig.me 2>/dev/null || echo "IP_SERVER") |
83 | 62 | echo |
84 | 63 | echo "🌐 URL Akses: http://$SERVER_IP:7575" |
| 64 | +echo "📦 Node.js: $(node -v)" |
| 65 | +echo "📦 npm: $(npm -v)" |
85 | 66 | echo |
86 | 67 | echo "📋 Langkah selanjutnya:" |
87 | 68 | echo "1. Buka URL di browser" |
|
0 commit comments