mirror of
https://github.com/twinpath/app.git
synced 2026-01-26 05:15:28 +07:00
chore: cleanup project structure and update readme for beta release
This commit is contained in:
84
deploy.sh.example
Normal file
84
deploy.sh.example
Normal file
@@ -0,0 +1,84 @@
|
||||
#!/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!"
|
||||
Reference in New Issue
Block a user