diff --git a/docs/antmedia.md b/docs/antmedia.md index cf43964..92e3dca 100644 --- a/docs/antmedia.md +++ b/docs/antmedia.md @@ -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 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 | diff --git a/docs/caddy.md b/docs/caddy.md index 26ecadb..6992bb9 100644 --- a/docs/caddy.md +++ b/docs/caddy.md @@ -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` | phpMyAdmin(strip 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") | diff --git a/docs/host.md b/docs/host.md index 0e4fa5a..667dd1c 100644 --- a/docs/host.md +++ b/docs/host.md @@ -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`。 diff --git a/docs/maintenance.md b/docs/maintenance.md index 158e69e..82177bc 100644 --- a/docs/maintenance.md +++ b/docs/maintenance.md @@ -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 憑證到期時間