From eb8b87820617157290bc383d70b138776d34af99 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Sun, 1 Feb 2026 17:02:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=83=A8=E5=B1=AC=E8=88=8A=E7=92=B0?= =?UTF-8?q?=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- socat/docker-compose.yaml | 187 +++++++++++++++++++++++++++++++++++++- 1 file changed, 185 insertions(+), 2 deletions(-) diff --git a/socat/docker-compose.yaml b/socat/docker-compose.yaml index 9a03beb..d3be128 100644 --- a/socat/docker-compose.yaml +++ b/socat/docker-compose.yaml @@ -164,6 +164,189 @@ services: # === 重新啟動策略 === restart: always # 容器異常退出時自動重啟 + # --- DS718 主要代理服務 --- + flaresolverr: + # === 容器基本設定 === + image: alpine/socat:latest # Alpine Linux + socat 工具 + container_name: socat_flaresolverr + + # === Traefik 標籤設定 === + labels: + - "traefik.enable=true" # 啟用 Traefik 代理 + - "traefik.docker.network=traefik_vlan" # 指定網路 + + # --- HTTP 服務配置 --- + - "traefik.http.services.flaresolverr.loadbalancer.server.scheme=https" # 服務協議為 HTTPS + - "traefik.http.services.flaresolverr.loadbalancer.server.port=8191" # 後端服務連接埠 5001 + + # --- HTTP 路由 (轉導至 HTTPS) --- + - "traefik.http.routers.flaresolverr.entrypoints=http" # HTTP 入口點 + - "traefik.http.routers.flaresolverr.rule=Host(`flaresolverr.jsc.idv.me`)" # 域名規則 + - "traefik.http.routers.flaresolverr.middlewares=https-redirect@docker" # 強制 HTTPS 轉導 + + # --- HTTPS 路由 --- + - "traefik.http.routers.flaresolverr-tls.entrypoints=https" # HTTPS 入口點 + - "traefik.http.routers.flaresolverr-tls.rule=Host(`flaresolverr.jsc.idv.me`)" # 域名規則 + - "traefik.http.routers.flaresolverr-tls.middlewares=gzip@docker" # 啟用 Gzip 壓縮 + - "traefik.http.routers.flaresolverr-tls.service=flaresolverr" # 指向服務 + - "traefik.http.routers.flaresolverr-tls.tls=true" # 啟用 TLS + + # --- HTTPS 路由 (Let's Encrypt) --- + - "traefik.http.routers.flaresolverr-letsencrypt.entrypoints=https" # HTTPS 入口點 + - "traefik.http.routers.flaresolverr-letsencrypt.rule=Host(`flaresolverr.jsc.idv.tw`)" # 域名規則 + - "traefik.http.routers.flaresolverr-letsencrypt.middlewares=gzip@docker" # 啟用 Gzip 壓縮 + - "traefik.http.routers.flaresolverr-letsencrypt.service=flaresolverr" # 指向服務 + - "traefik.http.routers.flaresolverr-letsencrypt.tls=true" # 啟用 TLS + - "traefik.http.routers.flaresolverr-letsencrypt.tls.certresolver=letsencrypt" # 使用 Let's Encrypt 證書 + + # === 環境變數設定 === + environment: + TZ: "Asia/Taipei" # 時區設定 (台北時間 UTC+8) + + # === 網路設定 === + networks: + - vlan # 使用 traefik_vlan 網路 + + # === Socat 代理指令 === + command: "-d -d tcp-listen:8191,reuseaddr,fork tcp:192.168.1.203:8191" # TCP 代理至 DS718 + + # === 日誌管理 === + logging: + driver: "json-file" # 使用 JSON 檔案記錄日誌 + options: + max-size: "1m" # 單一日誌檔案最大 1MB + + # === 重新啟動策略 === + restart: always # 容器異常退出時自動重啟 + + # --- DS718 主要代理服務 --- + download: + # === 容器基本設定 === + image: alpine/socat:latest # Alpine Linux + socat 工具 + container_name: socat_download + + # === Traefik 標籤設定 === + labels: + - "traefik.enable=true" # 啟用 Traefik 代理 + - "traefik.docker.network=traefik_vlan" # 指定網路 + + # --- HTTP 服務配置 --- + - "traefik.http.services.download.loadbalancer.server.scheme=http" # 服務協議為 HTTPS + - "traefik.http.services.download.loadbalancer.server.port=5000" # 後端服務連接埠 5001 + # --- HTTP 路由 (轉導至 HTTPS) --- + - "traefik.http.routers.download.entrypoints=http" # HTTP 入口點 + - "traefik.http.routers.download.rule=Host(`download.jsc.idv.me`)" # 域名規則 + - "traefik.http.routers.download.middlewares=https-redirect@docker" # 強制 HTTPS 轉導 + + # --- HTTPS 路由 --- + - "traefik.http.routers.download-tls.entrypoints=https" # HTTPS 入口點 + - "traefik.http.routers.download-tls.rule=Host(`download.jsc.idv.me`)" # 域名規則 + - "traefik.http.routers.download-tls.middlewares=gzip@docker" # 啟用 Gzip 壓縮 + - "traefik.http.routers.download-tls.service=download" # 指向服務 + - "traefik.http.routers.download-tls.tls=true" # 啟用 TLS + + # --- HTTPS 路由 (Let's Encrypt) --- + - "traefik.http.routers.download-letsencrypt.entrypoints=https" # HTTPS 入口點 + - "traefik.http.routers.download-letsencrypt.rule=Host(`download.jsc.idv.tw`)" # 域名規則 + - "traefik.http.routers.download-letsencrypt.middlewares=gzip@docker,auth@docker" # 啟用 Gzip 壓縮 + - "traefik.http.routers.download-letsencrypt.service=download" # 指向服務 + - "traefik.http.routers.download-letsencrypt.tls=true" # 啟用 TLS + - "traefik.http.routers.download-letsencrypt.tls.certresolver=letsencrypt" # 使用 Let's Encrypt 證書 + + # === 環境變數設定 === + environment: + TZ: "Asia/Taipei" # 時區設定 (台北時間 UTC+8) + + # === 網路設定 === + networks: + - vlan # 使用 traefik_vlan 網路 + + # === Socat 代理指令 === + command: "-d -d tcp-listen:5000,reuseaddr,fork tcp:192.168.1.203:5000" # TCP 代理至 DS718 + + # === 日誌管理 === + logging: + driver: "json-file" # 使用 JSON 檔案記錄日誌 + options: + max-size: "1m" # 單一日誌檔案最大 1MB + + # === 重新啟動策略 === + restart: always # 容器異常退出時自動重啟 + + # --- DS718 主要代理服務 --- + download-1: + # === 容器基本設定 === + image: alpine/socat:latest # Alpine Linux + socat 工具 + container_name: socat_download_1 + + # === Traefik 標籤設定 === + labels: + - "traefik.enable=true" # 啟用 Traefik 代理 + - "traefik.docker.network=traefik_vlan" # 指定網路 + + # --- HTTP 服務配置 (負載平衡器設定) --- + - "traefik.http.services.download.loadbalancer.server.scheme=http" # 服務協議為 HTTP (統一服務名稱) + - "traefik.http.services.download.loadbalancer.server.port=5001" # 後端服務連接埠 80 + - "traefik.http.services.download.loadbalancer.healthcheck.path=/hangfire" # 健康檢查路徑 + - "traefik.http.services.download.loadbalancer.healthcheck.interval=30s" # 健康檢查間隔 + + # === 環境變數設定 === + environment: + TZ: "Asia/Taipei" # 時區設定 (台北時間 UTC+8) + + # === 網路設定 === + networks: + - vlan # 使用 traefik_vlan 網路 + + # === Socat 代理指令 === + command: "-d -d tcp-listen:5001,reuseaddr,fork tcp:192.168.1.203:5001" # TCP 代理至 DS718 + + # === 日誌管理 === + logging: + driver: "json-file" # 使用 JSON 檔案記錄日誌 + options: + max-size: "1m" # 單一日誌檔案最大 1MB + + # === 重新啟動策略 === + restart: always # 容器異常退出時自動重啟 + + # --- DS718 主要代理服務 --- + download-2: + # === 容器基本設定 === + image: alpine/socat:latest # Alpine Linux + socat 工具 + container_name: socat_download_2 + + # === Traefik 標籤設定 === + labels: + - "traefik.enable=true" # 啟用 Traefik 代理 + - "traefik.docker.network=traefik_vlan" # 指定網路 + + # --- HTTP 服務配置 (負載平衡器設定) --- + - "traefik.http.services.download.loadbalancer.server.scheme=http" # 服務協議為 HTTP (統一服務名稱) + - "traefik.http.services.download.loadbalancer.server.port=5002" # 後端服務連接埠 5002 + - "traefik.http.services.download.loadbalancer.healthcheck.path=/hangfire" # 健康檢查路徑 + - "traefik.http.services.download.loadbalancer.healthcheck.interval=30s" # 健康檢查間隔 + + # === 環境變數設定 === + environment: + TZ: "Asia/Taipei" # 時區設定 (台北時間 UTC+8) + + # === 網路設定 === + networks: + - vlan # 使用 traefik_vlan 網路 + + # === Socat 代理指令 === + command: "-d -d tcp-listen:5002,reuseaddr,fork tcp:192.168.1.203:5002" # TCP 代理至 DS718 + + # === 日誌管理 === + logging: + driver: "json-file" # 使用 JSON 檔案記錄日誌 + options: + max-size: "1m" # 單一日誌檔案最大 1MB + + # === 重新啟動策略 === + restart: always # 容器異常退出時自動重啟 + # --- Proxmox VE 主要代理服務 --- pve: # === 容器基本設定 === @@ -208,7 +391,7 @@ services: - vlan # 使用 traefik_vlan 網路 # === Socat 代理指令 === - command: "-d -d tcp-listen:8006,reuseaddr,fork tcp:192.168.30.200:8006" # TCP 代理至 Proxmox VE + command: "-d -d tcp-listen:8006,reuseaddr,fork tcp:192.168.1.202:8006" # TCP 代理至 Proxmox VE # === 日誌管理 === logging: @@ -263,7 +446,7 @@ services: - vlan # 使用 traefik_vlan 網路 # === Socat 代理指令 === - command: "-d -d tcp-listen:3000,reuseaddr,fork tcp:192.168.30.221:3000" # TCP 代理至 Gitea + command: "-d -d tcp-listen:3000,reuseaddr,fork tcp:192.168.1.201:3000" # TCP 代理至 Gitea # === 日誌管理 === logging: