mirror of
https://github.com/twinpath/app.git
synced 2026-01-26 05:15:28 +07:00
85 lines
2.6 KiB
Bash
85 lines
2.6 KiB
Bash
#!/bin/bash
|
|
# ==========================================================
|
|
# Script Deployment Otomatis (GitHub -> aaPanel)
|
|
# Proyek: YOUR_PROJECT_NAME
|
|
# ==========================================
|
|
|
|
# --- 1. KONFIGURASI PATH & NOTIFIKASI ---
|
|
PROJECT_PATH="/www/wwwroot/your-domain.com"
|
|
PHP_BIN="/www/server/php/83/bin/php"
|
|
NODE_BIN="/www/server/nodejs/v24.12.0/bin/node"
|
|
|
|
# Fix Enviroment for Composer & Git
|
|
export HOME=/root
|
|
export COMPOSER_HOME=/root/.composer
|
|
git config --global --add safe.directory $PROJECT_PATH
|
|
|
|
# Telegram Config
|
|
BOT_TOKEN="YOUR_BOT_TOKEN"
|
|
CHAT_ID="YOUR_CHAT_ID"
|
|
|
|
function send_telegram() {
|
|
local message=$1
|
|
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
|
|
-d "chat_id=$CHAT_ID" \
|
|
-d "text=$message" \
|
|
-d "parse_mode=Markdown" > /dev/null
|
|
}
|
|
|
|
echo "==== STARTING DEPLOYMENT: $(date) ===="
|
|
send_telegram "🚀 *Deployment Started* for your-domain.com on $(date)"
|
|
|
|
cd $PROJECT_PATH || {
|
|
send_telegram "❌ *Deployment Failed*: Project path not found!";
|
|
exit 1;
|
|
}
|
|
|
|
# --- 2. UPDATE KODE DARI GITHUB ---
|
|
echo "[1/6] Fetching latest code from GitHub..."
|
|
git fetch --all
|
|
git reset --hard origin/main
|
|
|
|
# --- 3. MANAJEMEN DEPENDENSI (PHP) ---
|
|
echo "[2/6] Updating PHP dependencies (Composer)..."
|
|
# Mencari lokasi composer secara dinamis
|
|
if [ -f "/usr/local/bin/composer" ]; then
|
|
COMPOSER_PATH="/usr/local/bin/composer"
|
|
elif [ -f "/usr/bin/composer" ]; then
|
|
COMPOSER_PATH="/usr/bin/composer"
|
|
else
|
|
COMPOSER_PATH=$(which composer)
|
|
fi
|
|
|
|
$PHP_BIN $COMPOSER_PATH install --no-dev --optimize-autoloader --no-interaction || $PHP_BIN $COMPOSER_PATH update --no-dev --optimize-autoloader --no-interaction
|
|
|
|
# --- 4. DATABASE MIGRATION ---
|
|
echo "[3/6] Running database migrations..."
|
|
# Cek apakah vendor ada sebelum jalankan artisan
|
|
if [ ! -d "vendor" ]; then
|
|
echo "ERROR: Folder vendor tidak ditemukan. Composer install gagal."
|
|
send_telegram "❌ *Deployment Failed*: Vendor folder missing (Composer error)!"
|
|
exit 1
|
|
fi
|
|
$PHP_BIN artisan migrate --force
|
|
|
|
|
|
# --- 5. BUILD FRONTEND ASSETS ---
|
|
echo "[4/6] Installing & Building assets (Vite)..."
|
|
export PATH=$PATH:$(dirname $NODE_BIN)
|
|
npm install
|
|
npm run build
|
|
|
|
# --- 6. OPTIMASI LARAVEL ---
|
|
echo "[5/6] Running optimizations..."
|
|
$PHP_BIN artisan optimize
|
|
$PHP_BIN artisan view:cache
|
|
$PHP_BIN artisan storage:link --force
|
|
|
|
# --- 7. PERMISSION & CLEANUP ---
|
|
echo "[6/6] Fixing permissions..."
|
|
chown -R www:www $PROJECT_PATH
|
|
chmod -R 775 $PROJECT_PATH/storage $PROJECT_PATH/bootstrap/cache
|
|
|
|
echo "==== DEPLOYMENT COMPLETED SUCCESSFULLY ===="
|
|
send_telegram "✅ *Deployment Success*: your-domain.com is now updated!"
|