為內網的 IMMICH 設定加密連線

 話說現在的網站都要有 https 沒有那個 s 好像犯天條似的,即使是在內網也要搞個 s 來玩玩,如果你已經當了勇者把伺服器放上公網,也歡迎你分享設定,肯定香啊~,做為一個膽小時間又少的使用者,還是來設一下 s 吧!

工作環境:
    debian linux
        docker
            immich
            nginx(做為反向代理用)
            

反向代理有很多選項,試了很多沒遇上好運,回頭用了最基本的 nginx,或許下次可以試試 caddy 吧

首先,開2個 docker 的網路並且設定

docker network create inner_network
docker netowrk create reverse_proxy_network

 

在開始設定之前,記得把之前的 immich-app 停下來

docker compose down

設定一下 docker-compose.yml :進到你的 immich-app/docker-compose.yml 把每個 service 的 networks 改一下

如果 service 名稱是 immich 開頭的:

networks:
  - inner_network
  - reverse_proxy_network

其他的

networks:
  - inner_network

networks 的總述

networks:
  proxy:
    driver: bridge
  internal:
    driver: bridge

 引用 nginx:

  nginx:
    container_name: nginx
    hostname: nginx
    image: nginx:latest
    environment:
      - TZ=${TZ}
    volumes:
      - ./nginx:/etc/nginx/
    ports:
      - "80:80"
      - "443:443"
    networks:
      - reverse_proxy_network
    depends_on:
      - immich-server
    restart: always

 準備一下簽證的檔案放在 immich-app/nginx/ssl 裏

#這次用這個 generate cert for local network 基本上 local 端的網路是用自簽的,當然也可以找一些本地用的 acme 工具自動化
openssl req -x509 -newkey rsa:2048 -keyout lan.key -out lan.crt -days 365 -subj "/CN=*.lan" -nodes

#generate cert 然後要送簽證,外網用的,當然你可以用一些 acme 工具自動化
openssl req -new -newkey rsa:2048 -nodes -keyout lan.key -out lan.csr -subj "/CN=*.lan

 設定一下 nginx.conf 放在 immich-app/nginx 裏

events {
  worker_connections 1024;
}
http {
  server {
    listen 80;
    server_name <VAR_SERVER_NAME>;
    return 301 https://$host$request_uri; #uri 不是 url
  }

  server {
    listen 443 ssl; # http2 放這裏會出現 deprecated 錯誤
    http2 on;

    server_name <VAR_SERVER_NAME>;

    client_max_body_size 50000M;

    # 本地網路自發簽證檔
    ssl_certificate /etc/nginx/ssl/lan.crt;
    ssl_certificate_key /etc/nginx/ssl/lan.key;

    location / {
      #proxy_pass http://immich-server:3001; # curl: (6) Could not resolve host: immich.local
      proxy_pass http://<VAR_SERVER_NAME>:2283
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forward_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_read_timeout 90;
    }
  }
}

 

重新啟用 immich-app 

docker compose up -d

 

如果設定完成,這次你連到 http://your.local.name 使用你的 immich-app 網頁它會自動轉到 https://your.local.name 


還記得這個  service 的特點嗎?它有手機的 app ,雖然試到目前沒辦法用 https://your.local.name 連到你的 immich-app,但是至少,它能 https://your.local.ip 連到你的 immich-app 了

記得先去把允許自發簽證選設打開哦:

app > Settings > Advanced > Allow self-signed SSL certificates > 打開

 

話說,搞個 s 牌的 NAS 是不是花錢享受啊……

 


收工!


=============================================

如果登入網站收到新版本 immich-app 發布想要更新

docker compose pull && docker compose up -d





留言

這個網誌中的熱門文章

使用 Excel 計算2個地點之間的直線距離

LINE 儲存的檔案傳到 email 不方便 很不方便 非常不方便 但是有解的筆記

合併列印標籤漏印