# 伺服器架構摘要 本文件彙整 `106.105.181.40` 的整體運維圖像。逐項細節請點入對應的主題文件。 ## 1. 主機 | 項目 | 值 | |------|-----| | IP | `106.105.181.40` | | SSH 別名 | `hospital_media` | | 主要使用者 | `tpech_1duan`、`sftpuser`、`root` | → 詳見 [docs/host.md](docs/host.md) ## 2. 容器總覽 | 容器 | Image | 網路 | 用途 | |------|-------|------|------| | `caddy` | `caddy` | host | 反向代理、SSL 終端、靜態檔 | | `antmedia` | `antmediaserver:2.13.2` | host、privileged | 直播串流 | | `php` | `timmy/php_base:v1.0` | `8888→80` | 正式 PHP | | `php-staging` | `timmy/php_base:v1.0` | `6666→80` | 測試 PHP | | `coturn` | `coturn` | `3478` | TURN/STUN | | `phpmyadmin` | `phpmyadmin` | `1888→80` | DB 管理介面 | | `mysql-container` | `mysql:latest` | `3306` | MySQL | > 全部容器 `restart: always`。 ## 3. Caddy 路由 | 入口 | 後端 | 說明 | |------|------|------| | `tel.tpech.gov.tw:443` | `127.0.0.1:8888`(php) | 正式,HTTPS | | `tel.tpech.gov.tw:443/phpmyadmin/*` | `10.200.251.40:1888` | phpMyAdmin | | `tel.tpech.gov.tw:80` | `127.0.0.1:8888` | 正式,HTTP | | `:1443` | `127.0.0.1:6666`(php-staging) | 測試 | | `tel-server.tpech.gov.tw:80/443` | `/srv/tel-server` | PKI `.well-known` 靜態檔 | | `:443` / `:80` | `127.0.0.1:8888` | 其他網域 fallback | | `:8081` | — | 健康檢查 | - `auto_https off`:手動管理憑證 - 部署於 `/opt/caddy`,以 `docker-compose.yaml` 管理 → 詳見 [docs/caddy.md](docs/caddy.md) ## 4. Ant Media Server | 項目 | 值 | |------|-----| | 部署路徑 | `/opt/antmediaserver` | | Image | `antmediaserver:2.13.2`(基底 `ubuntu:22.04`) | | 網路 | `--network host` + `--privileged` | | 時區 | `Asia/Taipei` | | 資料 Volume | `antmedia_volume` → `/usr/local/antmedia/` | ### Web 應用 | 路徑 | 說明 | |------|------| | `/LiveApp` | 主要使用,WebRTC 20fps、HLS 啟用 | | `/WebRTCAppEE` | WebRTC 企業版,30fps(目前無串流) | | `/` | AMS Angular 管理後台 | - 轉碼:720p (1.5 Mbps) + 480p (1 Mbps) - TURN/STUN 指向 `106.105.181.40:3478` → 詳見 [docs/antmedia.md](docs/antmedia.md) ## 5. 對外 Port 總表 | 協定 | Port | |------|------| | HTTP | 80、5080 | | HTTPS | 443、1443、5443、8443(RTMPS) | | RTMP | 1935 | | TURN/STUN | 3478 | | WebRTC UDP | 50000-60000 | | 健康檢查 | 8081 | ## 6. SSL 憑證 兩張憑證分屬不同 CA,需各自手動更新。 | 網域 | CA | 到期日 | 使用於 | 憑證位置 | |------|----|--------|--------|----------| | `tel.tpech.gov.tw` | **TWCA** | **2026-10-30** | Caddy | 主機 `/opt/caddy/fullchain.pem`、`privkey.pem` | | `tel-server.tpech.gov.tw` | 中華電信 HiPKI | 2026-04-23 | AMS | 容器內 `/usr/local/antmedia/conf/` | > `tel.tpech.gov.tw` 2026-04-16 從 HiPKI 換成 TWCA,且只有半年效期(→ 10/30)。 - AMS Keystore 密碼 = 網域名稱 `tel-server.tpech.gov.tw` - 歷年憑證備份:`/opt/caddy/hospital/`、`/opt/antmediaserver/ssl_*/` - **注意**:醫院前端有防火牆/WAF 做 TLS 終端,更新 Caddy 後需另外通知網管同步更新 → 詳見 [docs/ssl.md](docs/ssl.md) ## 7. 備份 | 項目 | 方式 | |------|------| | AMS 資料卷 | `/opt/antmediaserver/backup_antmedia_data.sh` 產生 tar.gz | | AMS 歷史完整備份 | `/opt/antmedia_*.tar.gz`(最新 2025-05-12,3.4GB) | | 憑證備份 | `/opt/caddy/hospital/`、`/opt/antmediaserver/ssl_*/` | → 詳見 [docs/maintenance.md](docs/maintenance.md) ## 8. 已知問題 / 待辦 - **TURN/STUN** 仍為預設帳密 `testuser` / `testpassword`,建議更換。 - **LiveApp `remoteAllowedCIDR`** 格式錯誤:`106.105.181.40.106.105.181.70`,中間句點應為逗號。 - **AMS 以 `--privileged` 運行**,安全上需留意。 - **host 網路模式**:`caddy` 與 `antmedia` 皆共用主機所有 port,變更前需檢查衝突。 ## 9. 年度 SSL 更新流程(總覽) 1. 向中華電信提交 CSR。 2. 拿到 DCV 驗證檔 → 放入 `/opt/caddy/tel-server/.well-known/pki-validation/`。 3. CA 驗證通過 → 取得新憑證。 4. 更新 Caddy:覆蓋 `/opt/caddy/fullchain.pem`、`privkey.pem` → `./restart.sh`。 5. 更新 AMS:`cd /opt/antmediaserver && ./enable_ssl.sh ssl_tel_server_tpech_gov_tw_<年份>`。 6. 備份新憑證 → `hospital/`、`ssl_*/` 目錄。 7. 備份 AMS 資料 → `./backup_antmedia_data.sh`。 → 詳細步驟見 [docs/ssl.md](docs/ssl.md),常用指令見 [QUICKSTART.md](QUICKSTART.md#ssl-憑證更新)。