先前有撰文介紹並安裝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憑證成功加上了
