This repository has been archived on 2025-06-09. You can view files and clone it, but cannot push or open issues or pull requests.
2025-05-29 11:23:06 +08:00

74 lines
1.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
cd /var/www
# Remove trailing slash from APP_DOMAIN if exists
APP_DOMAIN="${APP_DOMAIN%/}"
# 預設 Redis 設定
: "${REDIS_HOST:=redis}"
: "${REDIS_PORT:=6379}"
# Clone 專案(只有第一次)
if [ ! -d "html" ]; then
echo "🔧 Cloning project from ${GIT_REPO_URL}..."
git clone "$GIT_REPO_URL" html
fi
cd html
# Composer install
echo "📦 Running composer install..."
composer install --no-interaction --prefer-dist
# 複製 .env
if [ ! -f ".env" ]; then
echo "⚙️ Copying .env.example to .env"
cp .env.example .env
fi
# 更新 .env 設定
echo "🛠 Updating .env configurations..."
update_env_var() {
local key=$1
local value=$2
grep -q "^${key}=" .env && \
sed -i "s|^${key}=.*|${key}=${value}|" .env || \
echo "${key}=${value}" >> .env
}
update_env_var "APP_URL" "$APP_DOMAIN"
update_env_var "L5_SWAGGER_CONST_HOST" "$APP_DOMAIN"
update_env_var "DB_DATABASE" "$DB_DATABASE"
update_env_var "DB_USERNAME" "$DB_USERNAME"
update_env_var "DB_PASSWORD" "$DB_PASSWORD"
update_env_var "REDIS_HOST" "$REDIS_HOST"
update_env_var "REDIS_PORT" "$REDIS_PORT"
update_env_var "QUEUE_CONNECTION" "$QUEUE_CONNECTION"
update_env_var "CACHE_DRIVER" "$CACHE_DRIVER"
update_env_var "SESSION_DRIVER" "$SESSION_DRIVER"
# Laravel 初始化
echo "🔑 Generating Laravel app key..."
php artisan key:generate
echo "🧱 Running migrations..."
php artisan config:clear && cache:clear
php artisan migrate --force
# 安裝 Node 套件與建構前端
echo "🌐 Installing npm packages..."
[ ! -d "node_modules" ] && npm install
echo "🛠 Building front-end assets..."
npm run build
# 加入 Laravel Schedule 到 crontab避免重複
echo "⏱ Adding schedule:run to crontab..."
crontab -l 2>/dev/null | grep -q 'schedule:run' || \
(echo "* * * * * cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1" | crontab -)
# 啟動 supervisord同時啟動 queue + cron + php-fpm
echo "🚀 Starting supervisord..."
exec supervisord -n