- antmedia.md / maintenance.md: 新增 `remoteAllowedCIDR` 白名單章節, 記錄 2026-04-17 將 `172.17.0.3`、`172.17.0.4`(php / php-staging 容器 bridge IP)加入 WebRTCAppEE,解決 PHP 呼叫錄影 REST API 回 403 「Not allowed IP」問題;含修改 SOP、容器重建 IP 變動提醒。 - host.md: 容器一覽表加入「掛載目錄」欄位,明列 php / php-staging 的網站根目錄掛載。 - caddy.md: `:1443` → php-staging 路由補註網站根目錄路徑。
123 lines
4.0 KiB
Markdown
123 lines
4.0 KiB
Markdown
# Ant Media Server
|
||
|
||
- 部署路徑:`/opt/antmediaserver`
|
||
|
||
## 服務狀態
|
||
|
||
| 項目 | 值 |
|
||
|------|-----|
|
||
| 容器名稱 | `antmedia` |
|
||
| Docker Image | `antmediaserver:2.13.2` |
|
||
| 安裝包 | `ant-media-server-enterprise-2.13.2-20250207_1708.zip` |
|
||
| 基礎映像 | `ubuntu:22.04` |
|
||
| 網路模式 | `--network host` |
|
||
| 時區 | `Asia/Taipei` |
|
||
| 重啟策略 | `--restart=always` |
|
||
| 資料 Volume | `antmedia_volume` → `/usr/local/antmedia/` |
|
||
|
||
## 操作腳本(`/opt/antmediaserver`)
|
||
|
||
```bash
|
||
./build_antmedia_image.sh # 建構 Docker image
|
||
./run.sh # 停舊容器 → 啟動新容器(掛載 antmedia_volume)
|
||
./stop.sh # docker stop antmedia
|
||
./shell.sh # docker exec -it antmedia bash
|
||
./enable_ssl.sh <CERT_DIR> [DOMAIN] # 一鍵更新 SSL 憑證
|
||
./backup_antmedia_data.sh # 備份 antmedia_volume 到當前目錄
|
||
```
|
||
|
||
### build_antmedia_image.sh
|
||
|
||
```bash
|
||
docker build --network=host -t antmediaserver \
|
||
--build-arg AntMediaServer=ant-media-server-enterprise-2.13.2-20250207_1708.zip .
|
||
```
|
||
|
||
### run.sh
|
||
|
||
```bash
|
||
docker stop antmedia && docker rm antmedia
|
||
docker run -d --network host --privileged \
|
||
--restart=always \
|
||
-e TZ=Asia/Taipei \
|
||
-v /etc/localtime:/etc/localtime:ro \
|
||
--mount source=antmedia_volume,target=/usr/local/antmedia/ \
|
||
--name antmedia antmediaserver:2.13.2
|
||
```
|
||
|
||
### backup_antmedia_data.sh
|
||
|
||
```bash
|
||
docker run --rm \
|
||
-v antmedia_volume:/data \
|
||
-v "$(pwd)":/backup \
|
||
busybox \
|
||
sh -c "cd /data && tar czf /backup/antmedia_backup_$(date +%Y%m%d_%H%M%S).tar.gz ."
|
||
```
|
||
|
||
## Web 應用
|
||
|
||
| 應用 | 路徑 | 說明 |
|
||
|------|------|------|
|
||
| LiveApp | `/LiveApp` | 直播應用(主要使用),WebRTC 20fps,HLS 啟用 |
|
||
| WebRTCAppEE | `/WebRTCAppEE` | WebRTC 企業版,30fps,目前無串流 |
|
||
| root | `/` | AMS 管理後台(Angular SPA) |
|
||
|
||
- 轉碼設定:720p (1.5Mbps) + 480p (1Mbps)
|
||
- TURN/STUN 指向 `106.105.181.40:3478`(帳密為預設 `testuser`/`testpassword`,建議更換)
|
||
- LiveApp 的 `remoteAllowedCIDR` 有格式錯誤:`106.105.181.40.106.105.181.70`,中間句點應為逗號
|
||
|
||
## REST API 白名單(`remoteAllowedCIDR`)
|
||
|
||
AMS 的 REST API(`/LiveApp/rest/...`、`/WebRTCAppEE/rest/...`、`/rest/...`)會在 Tomcat 層檢查來源 IP,不在白名單會回 `HTTP 403 – Not allowed IP`。
|
||
|
||
### 目前 `WebRTCAppEE` 白名單
|
||
|
||
```
|
||
127.0.0.1, 106.105.181.70, 106.105.181.40,
|
||
10.200.251.40, 10.200.251.70, 220.135.27.129,
|
||
172.17.0.3, 172.17.0.4
|
||
```
|
||
|
||
最後兩筆(`172.17.0.3` / `172.17.0.4`)是 `php` 與 `php-staging` 容器在 docker0 bridge 上的 IP,用於讓兩個 PHP 容器呼叫:
|
||
|
||
```
|
||
PUT http://tel-server.tpech.gov.tw:5080/WebRTCAppEE/rest/v2/broadcasts/{streamId}/recording/true?recordType=mp4
|
||
```
|
||
|
||
### 修改方式(**不中斷串流**)
|
||
|
||
1. 瀏覽器登入 `https://tel-server.tpech.gov.tw:5443/`
|
||
2. `WebRTCAppEE` → Settings → `Remote Allowed CIDR`
|
||
3. 編輯欄位(**逗號分隔**,別打成句點,否則整段會變非法 CIDR = deny all)
|
||
4. Save(熱更新,不中斷現有 broadcasting)
|
||
|
||
### 注意事項
|
||
|
||
- PHP 容器為 bridge network,IP 預設是 `172.17.0.x`。容器刪除後重建,**IP 可能會重新分配**。
|
||
- 驗證:`docker inspect php php-staging --format '{{.Name}} {{json .NetworkSettings.Networks}}'`
|
||
- 若變動,更新白名單即可;或改用網段 `172.17.0.0/16`(代價:同網段所有容器都能打 REST API)
|
||
- `red5-web.properties` 中的 `remoteAllowedCIDR` 僅為啟動預設值;透過 UI/REST 改過後實際生效的是 mapdb 裡的 runtime 設定。
|
||
|
||
## 連接埠
|
||
|
||
| 協定 | Port |
|
||
|------|------|
|
||
| HTTP | 5080 |
|
||
| HTTPS | 5443 |
|
||
| RTMP | 1935 |
|
||
| RTMPS | 8443 |
|
||
| TURN/STUN | 3478 |
|
||
| WebRTC UDP | 50000-60000 |
|
||
|
||
## 注意事項
|
||
|
||
- **AMS 使用 Docker volume**(`antmedia_volume`):容器刪除後資料仍保留,但刪除 volume 則遺失。
|
||
- **AMS 特權模式**:容器以 `--privileged` 運行。
|
||
|
||
## 相關文件
|
||
|
||
- [SSL 憑證管理](ssl.md)(含 AMS 憑證更新方法一 / 方法二)
|
||
- [主機與容器總覽](host.md)
|
||
- [系統維護與備份](maintenance.md)
|