feat: Initial v0.9 release with API Key authentication
## v0.9.20260325_144654 ### Features - API Key Authentication System - Job Worker System - V2 Backup Versioning ### Bug Fixes - get_processor_results_by_job column mapping Co-authored-by: OpenCode
This commit is contained in:
170
scripts/setup_fresh_mac.sh
Normal file
170
scripts/setup_fresh_mac.sh
Normal file
@@ -0,0 +1,170 @@
|
||||
#!/bin/bash
|
||||
#==============================================================================
|
||||
# Momentry System - Initial Setup Script
|
||||
# 適用於全新 Mac 的系統準備腳本
|
||||
#==============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
# 顏色定義
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 變數
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
MOMENTRY_DIR="/Users/accusys/momentry"
|
||||
CURRENT_USER=$(whoami)
|
||||
|
||||
#==============================================================================
|
||||
# 函數定義
|
||||
#==============================================================================
|
||||
|
||||
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"
|
||||
}
|
||||
|
||||
check_root() {
|
||||
if [ "$EUID" -eq 0 ]; then
|
||||
log_warning "不建議使用 root 執行此腳本"
|
||||
fi
|
||||
}
|
||||
|
||||
#==============================================================================
|
||||
# 主要流程
|
||||
#==============================================================================
|
||||
|
||||
main() {
|
||||
echo "=========================================="
|
||||
echo "Momentry System - Initial Setup"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
check_root
|
||||
|
||||
# Step 1: 建立目錄結構
|
||||
log_info "Step 1/5: 建立目錄結構..."
|
||||
|
||||
mkdir -p "$MOMENTRY_DIR"/{var,etc,log,scripts,backup}
|
||||
mkdir -p "$MOMENTRY_DIR/var"/{postgresql,mongodb,mariadb,redis,qdrant,n8n,ollama,sftpgo}
|
||||
mkdir -p "$MOMENTRY_DIR/etc"/{sftpgo,caddy,gitea,php}
|
||||
mkdir -p "$MOMENTRY_DIR/backup"/{daily,weekly,monthly}
|
||||
mkdir -p /Users/accusys/workspace/sftpgo
|
||||
mkdir -p /Users/accusys/sftpgo_test/{demo,uploads}
|
||||
|
||||
chown -R "$CURRENT_USER":staff "$MOMENTRY_DIR" 2>/dev/null || true
|
||||
chown -R "$CURRENT_USER":staff /Users/accusys/workspace 2>/dev/null || true
|
||||
chown -R "$CURRENT_USER":staff /Users/accusys/sftpgo_test 2>/dev/null || true
|
||||
|
||||
log_success "目錄結構建立完成"
|
||||
|
||||
# Step 2: 檢查 Homebrew
|
||||
log_info "Step 2/5: 檢查 Homebrew..."
|
||||
|
||||
if ! command -v brew &>/dev/null; then
|
||||
log_warning "Homebrew 未安裝"
|
||||
echo ""
|
||||
echo "請執行以下命令安裝 Homebrew:"
|
||||
echo "/bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""
|
||||
echo ""
|
||||
echo "安裝完成後,重新執行此腳本"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_success "Homebrew 已安裝: $(brew --version | head -1)"
|
||||
|
||||
# Step 3: 檢查必要工具
|
||||
log_info "Step 3/5: 檢查必要工具..."
|
||||
|
||||
TOOLS=("git" "curl" "jq" "tree")
|
||||
MISSING_TOOLS=()
|
||||
|
||||
for tool in "${TOOLS[@]}"; do
|
||||
if ! command -v "$tool" &>/dev/null; then
|
||||
MISSING_TOOLS+=("$tool")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#MISSING_TOOLS[@]} -gt 0 ]; then
|
||||
log_warning "缺少以下工具: ${MISSING_TOOLS[*]}"
|
||||
echo ""
|
||||
read -p "是否自動安裝這些工具? (y/n): " -n 1 -r
|
||||
echo ""
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
brew install "${MISSING_TOOLS[@]}"
|
||||
log_success "工具安裝完成"
|
||||
else
|
||||
log_warning "跳過工具安裝"
|
||||
fi
|
||||
else
|
||||
log_success "所有必要工具已安裝"
|
||||
fi
|
||||
|
||||
# Step 4: 檢查服務狀態
|
||||
log_info "Step 4/5: 檢查服務狀態..."
|
||||
|
||||
echo ""
|
||||
echo " PostgreSQL: $(pg_isready -h 127.0.0.1 -p 5432 >/dev/null 2>&1 && echo '✅ 運行中' || echo '❌ 未運行')"
|
||||
echo " Redis: $(redis-cli -a accusys ping >/dev/null 2>&1 && echo '✅ 運行中' || echo '❌ 未運行')"
|
||||
echo " MongoDB: $(mongosh --quiet --eval "db.adminCommand('ping')" >/dev/null 2>&1 && echo '✅ 運行中' || echo '❌ 未運行')"
|
||||
echo " Ollama: $(curl -s http://localhost:11434/api/tags >/dev/null 2>&1 && echo '✅ 運行中' || echo '❌ 未運行')"
|
||||
echo " n8n: $(curl -s http://localhost:5678 >/dev/null 2>&1 && echo '✅ 運行中' || echo '❌ 未運行')"
|
||||
echo " SFTPGo: $(curl -s http://localhost:8080 >/dev/null 2>&1 && echo '✅ 運行中' || echo '❌ 未運行')"
|
||||
echo " Qdrant: $(curl -s http://localhost:6333/ >/dev/null 2>&1 && echo '✅ 運行中' || echo '❌ 未運行')"
|
||||
echo " Momentry API: $(curl -s http://localhost:3002/health >/dev/null 2>&1 && echo '✅ 運行中' || echo '❌ 未運行')"
|
||||
echo ""
|
||||
|
||||
# Step 5: 建立快捷指令
|
||||
log_info "Step 5/5: 建立快捷指令..."
|
||||
|
||||
cat >/Users/accusys/momentry/scripts/health_check.sh <<'HEALTH_EOF'
|
||||
#!/bin/bash
|
||||
echo "=========================================="
|
||||
echo "Momentry System Health Check"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
pg_isready -h 127.0.0.1 -p 5432 > /dev/null 2>&1 && echo "✅ PostgreSQL" || echo "❌ PostgreSQL"
|
||||
redis-cli -a accusys ping > /dev/null 2>&1 && echo "✅ Redis" || echo "❌ Redis"
|
||||
mongosh --quiet --eval "db.adminCommand('ping')" > /dev/null 2>&1 && echo "✅ MongoDB" || echo "❌ MongoDB"
|
||||
curl -s http://localhost:11434/api/tags > /dev/null 2>&1 && echo "✅ Ollama" || echo "❌ Ollama"
|
||||
curl -s http://localhost:5678 > /dev/null 2>&1 && echo "✅ n8n" || echo "❌ n8n"
|
||||
curl -s http://localhost:8080 > /dev/null 2>&1 && echo "✅ SFTPGo" || echo "❌ SFTPGo"
|
||||
curl -s http://localhost:6333/ > /dev/null 2>&1 && echo "✅ Qdrant" || echo "❌ Qdrant"
|
||||
curl -s http://localhost:3002/health > /dev/null 2>&1 && echo "✅ Momentry API" || echo "❌ Momentry API"
|
||||
|
||||
echo ""
|
||||
HEALTH_EOF
|
||||
|
||||
chmod +x /Users/accusys/momentry/scripts/health_check.sh
|
||||
log_success "快捷指令已建立: /Users/accusys/momentry/scripts/health_check.sh"
|
||||
|
||||
# 完成
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
log_success "初始設定完成!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "下一步:"
|
||||
echo " 1. 查看完整安裝指南: docs/FRESH_MAC_INSTALLATION.md"
|
||||
echo " 2. 執行健康檢查: /Users/accusys/momentry/scripts/health_check.sh"
|
||||
echo " 3. 查閱服務密碼: docs/FRESH_MAC_INSTALLATION.md#第八部分"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# 執行
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user