docs: 記錄 WebRTCAppEE REST API 白名單新增,補充容器掛載資訊

- 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 路由補註網站根目錄路徑。
This commit is contained in:
2026-04-17 15:40:33 +08:00
parent 1c2aea825a
commit 394abb181e
4 changed files with 43 additions and 10 deletions

View File

@@ -67,6 +67,38 @@ docker run --rm \
- 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 networkIP 預設是 `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 |

View File

@@ -22,7 +22,7 @@
| `tel.tpech.gov.tw:443` | `127.0.0.1:8888`php 容器) | 正式環境HTTPS |
| `tel.tpech.gov.tw:443/phpmyadmin/*` | `10.200.251.40:1888` | phpMyAdminstrip prefix 後轉發) |
| `tel.tpech.gov.tw:80` | `127.0.0.1:8888` | 正式環境HTTP |
| `:1443` | `127.0.0.1:6666`php-staging 容器) | 測試環境ISO27001 |
| `:1443` | `127.0.0.1:6666`php-staging 容器,網站根目錄 `/opt/php-staging/www` | 測試環境ISO27001 |
| `tel-server.tpech.gov.tw:80/443` | `/srv/tel-server` | 靜態檔案服務(用於 PKI 驗證 `.well-known` |
| `:443` / `:80` | `127.0.0.1:8888` | 其他網域的 fallback |
| `:8081` | — | 健康檢查(回傳 "I am 8081" |

View File

@@ -10,15 +10,15 @@
## 全部容器一覽
| 容器名稱 | Image | 網路 | 用途 |
|----------|-------|------|------|
| `caddy` | `caddy` | host | 反向代理、SSL 終端、靜態檔案 |
| `antmedia` | `antmediaserver:2.13.2` | host | Ant Media Server串流 |
| `php` | `timmy/php_base:v1.0` | port 8888→80 | 正式環境 PHP 應用 |
| `php-staging` | `timmy/php_base:v1.0` | port 6666→80 | 測試環境 PHP 應用ISO27001 驗證用) |
| `coturn` | `coturn` | port 3478 | TURN/STUN 伺服器 |
| `phpmyadmin` | `phpmyadmin` | port 1888→80 | 資料庫管理介面 |
| `mysql-container` | `mysql:latest` | port 3306 | MySQL 資料庫 |
| 容器名稱 | Image | 網路 | 掛載目錄 | 用途 |
|----------|-------|------|----------|------|
| `caddy` | `caddy` | host | `/opt/caddy` | 反向代理、SSL 終端、靜態檔案 |
| `antmedia` | `antmediaserver:2.13.2` | host | — | Ant Media Server串流 |
| `php` | `timmy/php_base:v1.0` | port 8888→80 | `/opt/php/www``/var/www/html` | 正式環境 PHP 應用 |
| `php-staging` | `timmy/php_base:v1.0` | port 6666→80 | `/opt/php-staging/www``/var/www/html` | 測試環境 PHP 應用ISO27001 驗證用) |
| `coturn` | `coturn` | port 3478 | — | TURN/STUN 伺服器 |
| `phpmyadmin` | `phpmyadmin` | port 1888→80 | — | 資料庫管理介面 |
| `mysql-container` | `mysql:latest` | port 3306 | — | MySQL 資料庫 |
所有容器皆設為 `restart: always`

View File

@@ -16,6 +16,7 @@
- **host 網路**`caddy``antmedia` 皆使用 host 網路模式,直接共用主機所有 port。
- **TURN/STUN 帳密為預設值** `testuser` / `testpassword`,建議更換。
- **LiveApp 的 `remoteAllowedCIDR` 有格式錯誤**`106.105.181.40.106.105.181.70`,中間句點應為逗號。
- **WebRTCAppEE `remoteAllowedCIDR` 已加入 `172.17.0.3``172.17.0.4`**2026-04-17`php` / `php-staging` 容器能呼叫 `/WebRTCAppEE/rest/v2/...` 啟動錄影。詳見 [antmedia.md](antmedia.md#rest-api-白名單-remoteallowedcidr)。容器重建後 bridge IP 可能變動,需重新核對。
## SSL 憑證到期時間