Docker 一分鐘完成自動更新 SSL 証書的 nginx-proxy 設置

一分鐘即可以簡單的完成nginx-proxy + 自動更新 SSL的docker compose設定。

Docker 一分鐘完成自動更新 SSL 証書的 nginx-proxy 設置

在幾年前的教學中也有教過使用 nginx-proxy 及 letsencrypt-nginx-proxy-companion 來完成 docker-compose 的自動更新 SSL Cert 的設置。

但幾年來我都是 clone 一套來開設新 Server,最近發現原來整套設置的 image 都一段時間沒更新,所以就試一下 Traefik 來取代 Nginx。整個設定很簡單,更新 SSL 要做的設定比 letsencrypt-nginx-proxy-companion 還少,只是效能上 Nginx 還是很有優勢,下次篇再教 Traefik 的設置,今次說說新的 nginx-proxy package。

以前我使用的是 jwilder/nginx-proxy 及 jrcs/letsencrypt-nginx-proxy-companion 來做 proxy server 及 自動更新 SSL Cert,現在他們都合成一個新的 docker user 來一齊發表新的 image,分別是 nginxproxy/nignx-proxy 及nginxproxy/acme-companion,廢話少說馬上來看看 docker compose 。

services:
  # nginx-proxy
  nginx-proxy:
    image: nginxproxy/nginx-proxy:alpine	# 新的nginx-proxy image
    container_name: nginx-proxy
    restart: always
    ports:
      - 80:80		# 即使不用http也要有port 80
      - 443:443 	# https
    volumes:
      - conf:/etc/nginx/conf.d
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - dhparam:/etc/nginx/dhparam
      - certs:/etc/nginx/certs:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
    environment:
    - ENABLE_IPV6=true	# 支援IPv6
    networks:
      - nginx-proxy

  # acme companion
  acme-companion:
    image: nginxproxy/acme-companion	# 新的ssl companion image
    container_name: acme-companion
    volumes_from:
      - nginx-proxy
    volumes:
      - certs:/etc/nginx/certs:rw
      - acme:/etc/acme.sh
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - DEFAULT_EMAIL=youremail.com 	# 換成你的 email
    networks:
      - nginx-proxy
      
  # demo website
  website:
  	image: nginx:alpine
    container_name: website
    restart: always
    volumes:
      - ./website:/usr/share/nginx/html:ro
    environment:
      - VIRTUAL_HOST=www.yourdomain.com,yourdomain.com 	# 換成你的domain
      - LETSENCRYPT_HOST=www.yourdomain.com,yourdomain.com
    networks:
      - nginx-proxy
      
 volumes:
  conf: {}
  vhost: {}
  html: {}
  dhparam: {}
  certs: {}
  acme: {}
    
networks:
  nginx-proxy: {}

記得將 demo website 換成你自己的 container,由於有新的 default email 可以預先設定,所以只要設定 VIRTUAL_HOST 及 LETSENCRYPT 就好了。

設定完成後放置到安裝了docker 的 server 上,使用 docker compose up -d 即可起動及自動完成 let's encrypt 的 SSL 自動更新。

Read more

Unity AI Assistant 2.7.0 將不再支援 MCP 連接

Unity AI Assistant 2.7.0 將不再支援 MCP 連接

相信有不少人用 Unity AI MCP 來連接 Claude Code / Codex 等 AI 工具進行開發,近日隨著 Unity AI 進入公測,Unity 官方 Package com.unity.ai.assistant 亦升級到 v2.7.0-pre.2 。這個新版本的 Unity AI Assistant 在 Unity MCP Server 上加上了限制,Connected Clients limit 在 0 個 direct connection(以前是 Unlimited),就是不讓開發者使用其他 AI 工具來支援開發。 官方也有說明可以怎樣做,

Game Engine 的選擇

Game Engine 的選擇

在前陣子在決定寫 game 的期間,我試用了三大主流 Game Engine 來實作 demo,現在比較一下 Unreal,Unity 及 Godot 適合什麼開發者。 自我定位 在開始選擇前,我首先要確定自己是什麼開發者,以什麼角度去選擇 Game Engine。 * 首先我是獨立開發者,就是一個人會負責所有東西,繪圖設計,故事劇情,程式開發,宣傳銷售,後續經營,所以簡單很重要。 * 我使用 Macbook Pro M1 來開發,由於我沒有 desktop,單靠效能有限的主機來開發,所以效能夠不夠對我來說也是很重要。 * 遊戲平台,我的初期目標是 Steam/Andriod/iOS,如果有成果才會推向各大主機,雖然三大 Game Engine 都支持多平台輸出,但實際上調查後發現還是有一些限制,我會在下面解釋。 * 遊戲類型,