Files
OG T 9bff46a1b0 feat: integrate Sentry + fix CI/CD issues
Sentry Integration (補強 SignOz):
- Add @sentry/nextjs for frontend error tracking + session replay
- Add sentry-sdk[fastapi] for backend error tracking
- Create sentry.client/server/edge.config.ts
- Integrate with next.config.js + instrumentation.ts
- Add Sentry exception capture in FastAPI error handler
- Create deployment scripts for Self-Hosted @ 192.168.0.110

CI/CD Fixes:
- Fix F821 Undefined name 'Field' in incidents.py
- Add NEXT_PUBLIC_API_URL env var to CI build step
- Add build-arg to Docker build verification

E2E Test Improvements:
- Fix strict mode violations in dashboard-acceptance tests
- Add timeout increase for Phase 4 demo tests
- Make tests more resilient to UI variations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 15:19:52 +08:00

66 lines
1.9 KiB
Bash

#!/bin/bash
# =============================================================================
# Sentry Self-Hosted 部署腳本
# =============================================================================
# 目標主機: 192.168.0.110 (DevOps 金庫)
# 用途: Error Tracking + Session Replay (補強 SignOz)
# 執行: ssh wooo@192.168.0.110 'bash -s' < deploy.sh
# =============================================================================
set -euo pipefail
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
SENTRY_VERSION="24.3.0" # 使用穩定版本
INSTALL_DIR="/opt/sentry"
echo -e "${YELLOW}=== Sentry Self-Hosted 部署 ===${NC}"
echo "目標目錄: ${INSTALL_DIR}"
echo "版本: ${SENTRY_VERSION}"
# 檢查 Docker
if ! command -v docker &> /dev/null; then
echo -e "${RED}錯誤: Docker 未安裝${NC}"
exit 1
fi
# 檢查 Docker Compose
if ! docker compose version &> /dev/null; then
echo -e "${RED}錯誤: Docker Compose V2 未安裝${NC}"
exit 1
fi
# 檢查系統資源
MEM_GB=$(free -g | awk '/^Mem:/{print $2}')
if [ "$MEM_GB" -lt 8 ]; then
echo -e "${YELLOW}警告: 記憶體 ${MEM_GB}GB < 8GB (建議 16GB)${NC}"
fi
# 建立安裝目錄
sudo mkdir -p "$INSTALL_DIR"
cd "$INSTALL_DIR"
# 下載 Sentry Self-Hosted
if [ ! -d ".git" ]; then
echo -e "${GREEN}下載 Sentry Self-Hosted...${NC}"
sudo git clone https://github.com/getsentry/self-hosted.git .
sudo git checkout "${SENTRY_VERSION}"
fi
# 執行官方安裝腳本
echo -e "${GREEN}執行安裝腳本...${NC}"
sudo ./install.sh
echo -e "${GREEN}=== 安裝完成 ===${NC}"
echo ""
echo "後續步驟:"
echo "1. 啟動服務: cd ${INSTALL_DIR} && docker compose up -d"
echo "2. 建立管理員: docker compose run --rm web createuser"
echo "3. 建立專案: awoooi-web, awoooi-api"
echo "4. 取得 DSN 並配置到 K8s ConfigMap"
echo ""
echo "Sentry UI: http://192.168.0.110:9000"