49 lines
1.7 KiB
Markdown
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 瀏覽器即可。
|