125 lines
4.5 KiB
Markdown
125 lines
4.5 KiB
Markdown
# 伺服器架構摘要
|
||
|
||
本文件彙整 `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` | **TWCA** | **2026-10-30** | AMS | 容器內 `/usr/local/antmedia/conf/` |
|
||
|
||
> 兩張憑證均於 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-憑證更新)。
|