116 lines
4.1 KiB
Markdown
116 lines
4.1 KiB
Markdown
# 2026 FIFA 世界盃投注研究站(緊急版)
|
||
|
||
這是一個可直接啟動的網站:
|
||
- 抓取所有 2026 世界盃賽事(以 The Odds API 為主)
|
||
- 抓取各場賠率(1X2、讓球、大小球、BTTS)
|
||
- 解析前端新聞連動(Google RSS / NewsAPI 可切換)
|
||
- 將賠率轉換為市場共識機率,輸出高勝率投注玩法與組合建議(單場、2 串、3 串)
|
||
- 做賽程與新聞熱度對照(按日期統計、休息日比較、近期報導監控)
|
||
|
||
## 快速啟動
|
||
|
||
1. 安裝套件
|
||
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
2. 複製環境參數
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
|
||
3. 設定金鑰(至少要有 The Odds API Key)
|
||
|
||
- `THE_ODDS_API_KEY`:必填,取自 The Odds API
|
||
- 可選:`NEWS_API_KEY` + `NEWS_PROVIDER=newsapi`(更穩定)
|
||
- 可選:`KELLY_SCALE`(0~1,預設 0.6,控制 Kelly 參數保守度)
|
||
|
||
4. 啟動服務
|
||
|
||
```bash
|
||
npm start
|
||
```
|
||
|
||
開啟 `http://localhost:3000`。
|
||
正式上線請使用:`https://2026fifa.wooo.work`
|
||
|
||
> 時間設定:全站以 `APP_TIME_ZONE=Asia/Taipei`(台北時區,UTC+8)為主,API 回應與前端時間展示都會沿用此時區。
|
||
|
||
## API 簡介
|
||
|
||
- `GET /api/health`:服務狀態
|
||
- `GET /api/matches?force=1`:抓取賽事與賠率(含新聞)
|
||
- `GET /api/analyze`:回傳每場賽事策略與 2 串/3 串建議(含 `expectedValue`、`kellyFraction`、`modelGrade`)
|
||
- `GET /api/today-insights`:回傳台北時間今日場次之「高/中/低勝率+爆冷」摘要(首頁主題視覺)
|
||
- `GET /api/schedule-comparison`:回傳賽程比對與新聞熱點
|
||
- `GET /api/refresh`:手動刷新快取資料
|
||
- `GET /api/source-registry`:回傳主流資料來源台帳、整合狀態、權重與健康檢查(含 2026 世界盃主流官方/賠率/新聞/統計/天氣來源)
|
||
|
||
目前台帳已落地覆蓋:
|
||
- 官方(FIFA)
|
||
- 賠率主幹(The Odds API)與備援規劃源
|
||
- 新聞/事件(Reuters、BBC、ESPN、Goal、Sky Sports、Google RSS、NewsAPI)
|
||
- 統計與球隊技術(SofaScore、WhoScored、FBref、Understat、Soccerway、Transfermarkt 等)
|
||
- 天氣與場地條件(Open-Meteo、WeatherAPI、OpenWeather 規劃中)
|
||
|
||
## 正式環境部署建議(4 台候選主機)
|
||
|
||
已做基礎可達性盤點後,建議優先使用 `192.168.0.188` 作為正式主機:
|
||
- 110/188:22/80 可到達
|
||
- 110 回應為 301,188 為 200,188 對直接上線友善
|
||
- 120/121 目前未開放 80
|
||
|
||
建議流程:
|
||
1. 先把金鑰和站台參數放到目標機器 `/opt/fifa2026/.env`
|
||
2. 用部署腳本推版:
|
||
|
||
```bash
|
||
./ops/deploy-production.sh 192.168.0.188
|
||
```
|
||
|
||
3. 健康檢查:
|
||
|
||
```bash
|
||
./ops/healthcheck-production.sh 192.168.0.188 3108 2026fifa.wooo.work
|
||
```
|
||
|
||
5. 正式對外網址與健康資訊可直接由 `/api/health` 確認:
|
||
|
||
```bash
|
||
curl https://2026fifa.wooo.work/api/health
|
||
```
|
||
|
||
6. 查看 `ops/pm2.config.js` 與 `ops/deploy-host-assessment.md` 進行壓力/切換演練
|
||
7. 正式域名反代範例可套用 `ops/nginx-2026fifa.conf`(含 80 跳轉 443)
|
||
|
||
```bash
|
||
sudo cp ops/nginx-2026fifa.conf /etc/nginx/conf.d/2026fifa.wooo.work.conf
|
||
sudo nginx -t && sudo systemctl reload nginx
|
||
```
|
||
|
||
## 專業版本擴展
|
||
|
||
- 外部資料參考與權重策略見:`docs/professional-data-reference.md`
|
||
- 目前已將分析節奏做為「賽前高峰」加速更新(`LIVE_REFRESH_SECONDS`)
|
||
- 若你要全量參考外部主流網站的模型,建議下一步接入「多來源資料源抽象層」(賠率 + 賽事 + 新聞 + 天氣 + xG)
|
||
|
||
## 專案結構
|
||
|
||
- `src/server.js`:Express 後端 + 資料抓取 + 分析引擎 + 排程更新
|
||
- `public/index.html`:管理面版
|
||
- `public/app.js`:前端互動與卡片渲染
|
||
- `public/style.css`:界面樣式
|
||
|
||
## 重要提示
|
||
|
||
- 本系統側重「研究」與「風險參考」,非保證收益工具。
|
||
- 資料來源可能有授權或速率限制,實戰前請先驗證 API 顯示條件。
|
||
- 若要擴充更多市場,可在 `THE_ODDS_MARKETS` 增加對應 market key(例如 `btts,corners`)並調整前端顯示/分析規則。
|
||
|
||
## 資料安全
|
||
|
||
- `.env` 不要提交到版本庫。
|
||
- 生產環境建議加上反向代理與速率限制、API key 保護。
|