新增分拆文件、SOP 與 Caddy SSL 憑證更新紀錄

- 將 hospital_media_antmedia.md 分拆為 docs/ 下五份主題文件
  (host.md, caddy.md, antmedia.md, ssl.md, maintenance.md)
- 新增 README.md / QUICKSTART.md / SUMMARY.md 作為文件入口
- 新增 SOP:Caddy SSL 憑證更新流程 (docs/sop-update-caddy-ssl.md)
  含 2026-04-16 實戰踩坑紀錄(.cer 副檔名、私鑰不匹配、sudo、防火牆 TLS 終端)
- 更新各文件中 tel.tpech.gov.tw 憑證資訊:HiPKI → TWCA,到期 2026-10-30
- 新增 .gitignore 排除 ssl-staging/(含私鑰,不可進 git)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-16 10:54:47 +08:00
parent 7d6a7ef848
commit 97fd841a0c
10 changed files with 1013 additions and 0 deletions

118
QUICKSTART.md Normal file
View File

@@ -0,0 +1,118 @@
# Quickstart 常用操作速查
本文件整理日常維護 `106.105.181.40` 最常用的指令。各主題完整說明請見 [docs/](docs/)。
## 登入與巡檢
```bash
# SSH 登入
ssh hospital_media
# 查看所有容器狀態
docker ps
# 查看特定容器日誌
docker logs -f antmedia
docker logs -f caddy
```
## Caddy`/opt/caddy`
```bash
cd /opt/caddy
./run.sh # docker-compose up -d
./stop.sh # docker-compose down
./restart.sh # stop + run
./shell.sh # 進入容器 sh
./list-containers.sh # docker-compose ps
./view-output-from-containers.sh # docker-compose logs -f
```
完整路由與 SSL 配置見 [docs/caddy.md](docs/caddy.md)。
## Ant Media Server`/opt/antmediaserver`
```bash
cd /opt/antmediaserver
./run.sh # 停舊容器 → 啟動新容器(掛載 antmedia_volume
./stop.sh # docker stop antmedia
./shell.sh # 進入容器 bash
./build_antmedia_image.sh # 重新建構 Docker image
./backup_antmedia_data.sh # 備份 antmedia_volume 到當前目錄
./enable_ssl.sh <CERT_DIR> [DOMAIN] # 一鍵更新 SSL 憑證
```
完整部署細節見 [docs/antmedia.md](docs/antmedia.md)。
## SSL 憑證更新
### Caddy`tel.tpech.gov.tw`
```bash
# 1. 從本機把新憑證上傳
scp fullchain.pem privkey.pem hospital_media:/opt/caddy/
# 2. 重啟 Caddyvolume 會自動載入新憑證)
ssh hospital_media "cd /opt/caddy && ./restart.sh"
# 3. 驗證有效期
openssl s_client -connect tel.tpech.gov.tw:443 \
-servername tel.tpech.gov.tw </dev/null 2>/dev/null \
| openssl x509 -noout -dates
```
### Ant Media Server`tel-server.tpech.gov.tw`
把新憑證資料夾(含 `fullchain.pem``*.key`)放到 `/opt/antmediaserver/` 下後:
```bash
cd /opt/antmediaserver
./enable_ssl.sh ssl_tel_server_tpech_gov_tw_2026
# 若需指定網域:
./enable_ssl.sh ssl_tel_server_tpech_gov_tw_2026 tel-server.tpech.gov.tw
# 驗證
openssl s_client -connect tel-server.tpech.gov.tw:5443 \
-servername tel-server.tpech.gov.tw </dev/null 2>/dev/null \
| openssl x509 -noout -dates
```
DCV 驗證檔、手動操作、年度 checklist 詳見 [docs/ssl.md](docs/ssl.md)。
2026-10 這次 TWCA 換發的完整步驟見 [docs/sop-update-caddy-ssl.md](docs/sop-update-caddy-ssl.md)。
## 備份
```bash
# AMS 資料卷備份
cd /opt/antmediaserver && ./backup_antmedia_data.sh
# 產生 antmedia_backup_YYYYMMDD_HHMMSS.tar.gz 於當前目錄
```
更多備份資訊見 [docs/maintenance.md](docs/maintenance.md)。
## 緊急排查
| 現象 | 檢查步驟 |
|------|----------|
| 網站 502 | `docker ps``php` / `php-staging` 是否運行;`docker logs caddy` 看 upstream 錯誤 |
| AMS 無法串流 | `docker logs antmedia`;確認 port `1935/5443/50000-60000` 未被 firewall 擋 |
| HTTPS 憑證錯誤 | `openssl s_client` 檢查到期日;必要時重新 `./restart.sh``./enable_ssl.sh` |
| phpMyAdmin 進不去 | 確認 `10.200.251.40:1888` 可達Caddy 用內網 IP 轉發) |
## 對外 Port 速查
| Port | 服務 |
|------|------|
| 80 / 443 | CaddyHTTP/HTTPS |
| 1443 | Caddy → php-staging |
| 8081 | Caddy 健康檢查 |
| 5080 / 5443 | AMS HTTP / HTTPS |
| 1935 / 8443 | AMS RTMP / RTMPS |
| 3478 | CoturnTURN/STUN |
| 50000-60000 | AMS WebRTC UDP |
| 1888 | phpMyAdmin對外經 Caddy |
| 3306 | MySQL |
完整 Port 與容器對應見 [docs/host.md](docs/host.md)。