Files
godoxy/README_CHT.md
yusing 9c2051840f chore(docs): enhance README with Proxmox integration details
Added sections for Proxmox integration, including automatic route binding, WebUI management, and API endpoints. Updated existing content to reflect LXC lifecycle control and real-time logging capabilities for both Docker and Proxmox environments.
2026-01-25 17:13:26 +08:00

8.0 KiB
Raw Blame History

Quality Gate Status GitHub last commit Lines of Code

Demo Discord

輕量、易用、 高效能,且帶有主頁和配置面板的反向代理

網站 | 文檔 | Discord
EN | 中文

有疑問? 問 ChatGPT!(鳴謝 @ismesid

目錄

運行示例

https://demo.godoxy.dev

主要特點

  • 簡單易用
  • 存取控制 (ACL):連線/請求層級存取控制
    • IP/CIDR
    • 國家 (需要 Maxmind 帳戶)
    • 時區 (需要 Maxmind 帳戶)
    • 存取日誌記錄
    • 定時發送摘要 (允許和拒絕的連線次數)
  • 自動化
    • 使用 Let's Encrypt 自動管理 SSL 憑證 (使用 DNS-01 驗證)
    • Docker 容器自動配置
    • 設定檔與容器狀態變更時自動熱重載
  • 容器運行時支援
    • Docker
    • Podman
  • 閒置休眠:根據流量停止和喚醒容器 (參見截圖)
    • Docker 容器
    • Proxmox LXC 容器
  • Proxmox 整合
    • 自動路由綁定透過比對主機名稱、IP 或別名自動將路由綁定至 Proxmox 節點或 LXC 容器
    • LXC 生命週期控制:可直接從 WebUI 啟動、停止、重新啟動容器
    • 即時日誌:透過 WebSocket 串流節點和 LXC 容器的 journalctl 日誌
  • 流量管理
    • HTTP 反向代理
    • TCP/UDP 連接埠轉送
    • OpenID Connect 支援:輕鬆實現單點登入 (SSO) 並保護您的應用程式
    • ForwardAuth 支援:整合任何 auth provider (例如 TinyAuth)
  • 客製化
  • 網頁使用者介面 (Web UI)
    • 應用程式一覽
    • 設定編輯器
    • 執行時間與系統指標
    • Docker
      • 容器生命週期管理 (啟動、停止、重新啟動)
      • 透過 WebSocket 即時串流容器日誌
    • Proxmox
      • LXC 容器生命週期管理 (啟動、停止、重新啟動)
      • 透過 WebSocket 即時串流節點和 LXC 容器 journalctl 日誌
  • 跨平台支援
    • 支援 linux/amd64linux/arm64
  • 高效能
    • Go 語言編寫

前置需求

設置 DNS 記錄指向運行 GoDoxy 的機器,例如:

  • A 記錄:*.y.z -> 10.0.10.1
  • AAAA 記錄:*.y.z -> ::ffff:a00:a01

安裝

Note

GoDoxy 僅在 host 網路模式下運作,請勿更改。

如需更改監聽埠,請修改 .env

  1. 準備一個新目錄用於 docker compose 和配置文件。

  2. 在目錄內運行安裝腳本,或手動安裝

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/yusing/godoxy/main/scripts/setup.sh)"
    
  3. 現在可以在 WebUI https://godoxy.yourdomain.com 進行額外配置

手動安裝

  1. 建立 config 目錄,然後將 config.example.yml 下載到 config/config.yml

    mkdir -p config && wget https://raw.githubusercontent.com/yusing/godoxy/main/config.example.yml -O config/config.yml

  2. .env.example 下載到 .env

    wget https://raw.githubusercontent.com/yusing/godoxy/main/.env.example -O .env

  3. compose.example.yml 下載到 compose.yml

    wget https://raw.githubusercontent.com/yusing/godoxy/main/compose.example.yml -O compose.yml

資料夾結構

├── certs
│   ├── cert.crt
│   └── priv.key
├── compose.yml
├── config
│   ├── config.yml
│   ├── middlewares
│   │   ├── middleware1.yml
│   │   ├── middleware2.yml
│   ├── provider1.yml
│   └── provider2.yml
├── data
│   ├── metrics # metrics data
│   │   ├── uptime.json
│   │   └── system_info.json
└── .env

Proxmox 整合

GoDoxy 可透過配置的提供者自動探索和管理 Proxmox 節點和 LXC 容器。

自動路由綁定

路由透過反向查詢自動連結至 Proxmox 資源:

  1. 節點級路由 (VMID = 0)當主機名稱、IP 或別名符合 Proxmox 節點名稱或 IP 時
  2. 容器級路由 (VMID > 0)當主機名稱、IP 或別名符合 LXC 容器時

這可實現無需手動綁定的無縫代理配置:

routes:
  pve-node-01:
    host: pve-node-01.internal
    port: 8006
    # 自動連結至 Proxmox 節點 pve-node-01

WebUI 管理

您可以從 WebUI

  • LXC 生命週期控制:啟動、停止、重新啟動容器
  • 節點日誌:串流來自節點的即時 journalctl 輸出
  • LXC 日誌:串流來自容器的即時 journalctl 輸出

API 端點

# 節點 journalctl (WebSocket)
GET /api/v1/proxmox/journalctl/:node

# LXC journalctl (WebSocket)
GET /api/v1/proxmox/journalctl/:node/:vmid

# LXC 生命週期控制
POST /api/v1/proxmox/lxc/:node/:vmid/start
POST /api/v1/proxmox/lxc/:node/:vmid/stop
POST /api/v1/proxmox/lxc/:node/:vmid/restart

更新 / 卸載系統代理 (System Agent)

更新:

sudo /bin/bash -c "$(curl -fsSL https://github.com/yusing/godoxy/raw/refs/heads/main/scripts/install-agent.sh)" -- update

卸載:

sudo /bin/bash -c "$(curl -fsSL https://github.com/yusing/godoxy/raw/refs/heads/main/scripts/install-agent.sh)" -- uninstall

截圖

閒置休眠

閒置休眠

監控

Routes Servers
路由 伺服器

自行編譯

  1. 克隆儲存庫 git clone https://github.com/yusing/godoxy --depth=1

  2. 如果尚未安裝,請安裝/升級 go (>=1.22)make

  3. 如果之前編譯過go < 1.22),請使用 go clean -cache 清除快取

  4. 使用 make get 獲取依賴

  5. 使用 make build 編譯二進制檔案

Star History

Star History Chart

🔼 回到頂部