為了方便幫自己家中的一先服務做反向代理,剛好手邊有一台 Synology 的 DS718+ 的 NAS 可以使用

原本只知道 Nginx,但是 Caddy 設定更輕鬆簡單,而且會自動申請 Let's Encrypt 憑證

原本想說使用虛擬機進行安裝,沒想到 Synology 也支援 Docker

所以不用特地在安裝一個虛擬機浪費效能

步驟一 安裝 Synology 安裝套件 Docker

請注意 Synology 機型是否支援 Docker 官網

安裝Docker

步驟二 下載 Caddy 映像

選擇 abiosoft/caddy 進行下載

Download Caddy

步驟三 佈署&設定 Caddy 容器

啟動容器資源限制,由於只有我個人使用,記憶體設定 64MB 足夠使用

Deploy Caddy

勾選容器自動重啟,當 NAS 重新啟動的時候,Caddy 服務也能自動啟動

Auto Restart

配置 Caddyfile 並儲存在 Synology 中

1
2
3
4
5
6
7
8
www.example.com {
    proxy / 0.0.0.0:8000 {
        websocket
        transparent
    }
    gzip
    browse
}

將 Synology 中的 Caddyfile 掛載至 Caddy 容器中

Mount File

容器網路埠設定,刪除用不到的容器埠 2015

由於 Synology 本身已經佔用 80 及 443 埠,所以必須設置兩個沒有使用的埠來對應

我使用 NAS:8443 - 容器:443、NAS:8080-容器:80

路由器 NAT 需要設定為 外網:443 - NAS:8443、外網:80 - NAS:8080 否則憑證無法正常連線

Setting Container Port

設定時區 TZ = Asia/Taipei

setting timezone

這樣就能執行 Caddy 容器,並透過設定的網址 https://www.example.com 進行連線

參考資料

  1. https://hub.docker.com/r/abiosoft/caddy/