Files
42_104/README.md
2026-06-23 19:48:06 +08:00

49 lines
1.7 KiB
Markdown

# 42_104
Caddy 靜態檔案伺服器,用 Docker Compose 運行,把 `caddy/www/` 目錄掛載到 `:80` 提供瀏覽。`www/` 裡是一堆各自獨立、可直接開啟的 HTML demo(圖表、QR/發票掃描、Lit + Tailwind 範例、羅盤等),沒有共用的 build 流程或框架。
## 啟動
```sh
cd caddy
./run.sh # docker-compose up -d
./stop.sh # docker-compose down
```
啟動後開 `http://localhost/` 瀏覽 `www/`,或直接連 `http://localhost/<檔名>.html`
> 若機器上沒裝 `docker-compose`,可用等效的 `docker run` 啟動:
> ```sh
> docker run -d --name caddy --restart unless-stopped -p 80:80 \
> -v "$PWD/Caddyfile:/etc/caddy/Caddyfile" \
> -v "$PWD/caddy_data:/data" \
> -v "$PWD/www:/var/www/static" \
> -e TZ=Asia/Taipei caddy
> ```
## 部署
遠端伺服器:`192.168.42.104`(主機 CT104,Linux),caddy 根目錄在 `/opt/caddy`,web 內容在 `/opt/caddy/www`(由 `timmy` 帳號擁有、可寫,免密碼 SSH)。
更新內容用 rsync:
```sh
rsync -av caddy/www/<目錄或檔案> timmy@192.168.42.104:/opt/caddy/www/
```
上線後即可從 `http://192.168.42.104/<路徑>` 存取。
## 其他腳本
| 腳本 | 作用 |
|------|------|
| `list_docker_compose_services.sh` | `docker-compose ps` |
| `view-output-from-containers.sh` | `docker-compose logs -f` |
| `enter_caddy_container.sh` | 進入運行中的容器 shell |
## 結構
- `caddy/Caddyfile` — 伺服器設定,掛載到 `/etc/caddy/Caddyfile`。改完需 `./stop.sh && ./run.sh` 重啟。
- `caddy/docker-compose.yaml` — 單一 `caddy` service,bind-mount `Caddyfile``caddy_data/`(憑證/狀態)、`www/`。Port 80,`TZ=Asia/Taipei`
- `caddy/www/` — 提供的內容。新增 demo 只要丟一個 `.html`(及資產子目錄)進去,refresh 瀏覽器即可。