NPM安裝,利用它幫Immich上SSL憑證

先前有撰文介紹並安裝Immich…
<文章連結>

若要在外部網路使用的話建議還是上個SSL憑證
以下將以Cloudflare作為範例

1.建置NPM,先建立一個資料夾來存放相關安裝所需的項目
路徑也是依你喜好

sudo mkdir -p npm
cd npm

2.接著建立並編輯一個yml檔

sudo vim docker-compose.yml

內容請輸入下列後存檔

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'      # HTTP入口
      - '81:81'      # NPM管理介面
      - '443:443'    # HTTPS入口
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

3.執行yml啟動docker容器並安裝npm

sudo docker compose up -d

完成後便可以透過 http://ip:81 來存取NPM管理網頁
請建立管理者帳號並登入

4.登入後點選 Proxy hosts,點選 add Proxy Host

5.接著設定相關資訊
Domain Names設定你的domain name
Forward Hostname設定安裝Immich那台Ubuntu的內部IP
(通常為192開頭)
Forward Port設定2283
勾選 Block Common Exploits

6.點選右上角的齒輪增加一些額外設定

client_max_body_size 0;
send_timeout 3600s;

此兩項是設定上傳檔案的大小上限與時間限制
第一行設定沒有大小上限;第二行設定上傳最多1小時
接著Save完成設定

7.在自己網域的DNS設定對應紀錄

接著設定SSL憑證

8.打開Cloudflare > 右上角人像 > 設定檔> API權杖 >建立Token

9.選擇「建立自訂 Token」並開始使用

10.接著填寫相關資訊
名稱自訂
權限選擇區域、SSL與憑證、編輯
區域資源選擇你的網域
IP位址篩選建議將自己的外部IP加入弄個白名單較安全

11.取得Token後請務必保存,只會顯示一次

12.接著回到NPM管理介面,點選Certificates → Add Certificate

13.Domain Names填你的網域名稱,建議使用萬用字元*.domain.com
DNS Provider填Cloudflare
dns_cloudflare_api_token=後面替換成你剛剛取得的Token
接著按SAVE

完成後就會顯示在Certificate列表上

14.接著回到Dashboard → Proxy Hosts 編輯剛剛建立的Proxy host

15.在SSL分頁選擇我們剛剛建立的Certificate,然後點選Force SSL
強制連線只走SSL

16.開放外部的部分原本是開2283 port,請改成443 port
  接著打開domain name的網址就可以看到SSL憑證成功加上了

發佈留言