Update skills: add website-creator, mql-developer, ecommerce-astro
Changes: - Add FAL_KEY and GEMINI_API_KEY to .env.example - Update picture-it to use ~/.config/opencode/.env (unified creds) - Remove shodh-memory skill (no longer used) - Remove alphaear-* skills (deprecated) - Remove thai-frontend-dev skill (replaced by website-creator) - Remove theme-factory skill - Add mql-developer skill (MQL5 trading) - Add ecommerce-astro skill (Astro e-commerce) - Add website-creator skill (Next.js + Payload CMS) - Update install script for new skills
This commit is contained in:
267
skills/website-creator/scripts/deploy.sh
Executable file
267
skills/website-creator/scripts/deploy.sh
Executable file
@@ -0,0 +1,267 @@
|
||||
#!/usr/bin/env bash
|
||||
#===============================================================================
|
||||
# deploy.sh - Deploy Astro + Payload CMS ไปยัง Easypanel
|
||||
#
|
||||
# Usage: ./deploy.sh [project-path] [server] [domain]
|
||||
#
|
||||
# Requirements:
|
||||
# - git
|
||||
# - npm
|
||||
# - easypanel CLI (หรือใช้ web interface)
|
||||
#
|
||||
#===============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
# Colors
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Default values
|
||||
PROJECT_PATH="${1:-.}"
|
||||
SERVER="${2:-}"
|
||||
DOMAIN="${3:-}"
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Helper functions
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
log_info() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
log_success() {
|
||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
||||
}
|
||||
|
||||
log_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
log_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
print_usage() {
|
||||
cat << EOF
|
||||
Usage: $(basename "$0") [project-path] [server] [domain]
|
||||
|
||||
Deploy Astro + Payload CMS ไปยัง Easypanel
|
||||
|
||||
Arguments:
|
||||
project-path ที่อยู่ project (default: current directory)
|
||||
server ชื่อ easypanel server
|
||||
domain domain ที่จะใช้ (เช่น example.com)
|
||||
|
||||
Examples:
|
||||
$(basename "$0") /path/to/project my-server example.com
|
||||
$(basename "$0") . openclaw-vps techvision.co.th
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Pre-flight checks
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
check_requirements() {
|
||||
log_info "ตรวจสอบความต้องการ..."
|
||||
|
||||
if ! command -v git &> /dev/null; then
|
||||
log_error "git ไม่พบ"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v npm &> /dev/null; then
|
||||
log_error "npm ไม่พบ"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$PROJECT_PATH"
|
||||
|
||||
if [ ! -f "package.json" ]; then
|
||||
log_error "ไม่พบ package.json"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "astro.config.mjs" ]; then
|
||||
log_error "ไม่พบ astro.config.mjs"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_success "ความต้องการพื้นฐานผ่าน"
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Check git status
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
check_git() {
|
||||
log_info "ตรวจสอบ git..."
|
||||
|
||||
if [ ! -d ".git" ]; then
|
||||
log_warning "ไม่พบ .git directory"
|
||||
log_info "กำลังสร้าง git repo..."
|
||||
git init
|
||||
git add .
|
||||
git commit -m "Initial commit"
|
||||
log_success "สร้าง git repo เสร็จสมบูรณ์"
|
||||
else
|
||||
log_success "พบ git repo"
|
||||
fi
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Build project
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
build_project() {
|
||||
log_info "Build project..."
|
||||
|
||||
cd "$PROJECT_PATH"
|
||||
|
||||
# Install dependencies
|
||||
log_info "ติดตั้ง dependencies..."
|
||||
npm install
|
||||
|
||||
# Build
|
||||
log_info "กำลัง build..."
|
||||
npm run build
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
log_success "Build เสร็จสมบูรณ์"
|
||||
else
|
||||
log_error "Build ล้มเหลว"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Check build output
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
check_build_output() {
|
||||
log_info "ตรวจสอบ build output..."
|
||||
|
||||
cd "$PROJECT_PATH"
|
||||
|
||||
if [ -d "dist" ]; then
|
||||
local file_count=$(find dist -type f | wc -l)
|
||||
local size=$(du -sh dist | cut -f1)
|
||||
log_success "พบ dist/ ($file_count files, $size)"
|
||||
else
|
||||
log_error "ไม่พบ dist/ directory"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Deploy instructions
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
show_deploy_instructions() {
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
echo " Deploy Instructions"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
echo " Project: $PROJECT_PATH"
|
||||
echo " Server: $SERVER"
|
||||
echo " Domain: $DOMAIN"
|
||||
echo ""
|
||||
echo " ขั้นตอนการ deploy บน Easypanel:"
|
||||
echo ""
|
||||
echo " 1. เปิด Easypanel dashboard"
|
||||
echo " 2. สร้าง project ใหม่"
|
||||
echo " 3. เลือก 'Deploy from Git'"
|
||||
echo " 4. ใส่ git repo URL"
|
||||
echo " 5. ตั้งค่า environment variables:"
|
||||
echo " - PAYLOAD_SECRET"
|
||||
echo " - DATABASE_URL"
|
||||
echo " 6. ตั้งค่า domain: $DOMAIN"
|
||||
echo " 7. Deploy"
|
||||
echo ""
|
||||
echo " หรือใช้ easypanel CLI:"
|
||||
echo ""
|
||||
echo " ep project create --name $PROJECT_NAME --server $SERVER"
|
||||
echo " ep project deploy \$PROJECT_ID --git"
|
||||
echo ""
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Create deploy config
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
create_deploy_config() {
|
||||
log_info "สร้าง deploy config..."
|
||||
|
||||
cd "$PROJECT_PATH"
|
||||
|
||||
mkdir -p .easypanel
|
||||
|
||||
cat > .easypanel/deploy.json << EOF
|
||||
{
|
||||
"name": "$PROJECT_NAME",
|
||||
"server": "$SERVER",
|
||||
"domain": "$DOMAIN",
|
||||
"build": {
|
||||
"command": "npm run build",
|
||||
"output": "dist"
|
||||
},
|
||||
"environment": {
|
||||
"NODE_ENV": "production"
|
||||
},
|
||||
"required_env": [
|
||||
"PAYLOAD_SECRET",
|
||||
"DATABASE_URL"
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
log_success "สร้าง .easypanel/deploy.json เสร็จสมบูรณ์"
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Main
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
main() {
|
||||
echo "=============================================="
|
||||
echo " Deploy Tool"
|
||||
echo " Astro + Payload CMS -> Easypanel"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
|
||||
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
|
||||
print_usage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -z "$SERVER" ]; then
|
||||
log_info "ไม่ได้ระบุ server - จะแสดงวิธี deploy"
|
||||
SERVER="<your-server>"
|
||||
fi
|
||||
|
||||
if [ -z "$DOMAIN" ]; then
|
||||
DOMAIN="<your-domain.com>"
|
||||
fi
|
||||
|
||||
PROJECT_NAME=$(basename "$PROJECT_PATH")
|
||||
|
||||
check_requirements
|
||||
check_git
|
||||
build_project
|
||||
check_build_output
|
||||
create_deploy_config
|
||||
show_deploy_instructions
|
||||
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
log_success "พร้อม deploy!"
|
||||
echo "=============================================="
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user