czyt

cfui:基于 go 的 cloudflared web UI

  •  
  •   czyt · 4 days ago · 921 views

    cfui 是一个用于管理 Cloudflare Tunnel ( cloudflared )的 Web 控制台。它可以运行本地隧道进程,也可以通过 Cloudflare API 管理远程 Tunnel ingress 规则,支持 DDNS 、S3 兼容存储的 WebDAV 挂载,以及供 AI 客户端使用的 MCP 端点。

    Web UI 已内置在二进制文件中。配置保存在数据目录下的本地 SQLite 数据库里。

    功能

    • 本地 Cloudflare Tunnel 运行管理

      • 在浏览器里粘贴 Cloudflare Tunnel token ,启动或停止本地隧道。
      • 支持自动启动、异常自动重启、协议、区域、重试次数、优雅关闭时间、metrics 、后量子模式、边缘 IP 版本、边缘绑定地址、TLS 校验和额外 cloudflared 参数。
      • 显示隧道状态、当前协议、最近错误和版本构建信息。
    • 远程 Tunnel 管理

      • 可选功能,用于管理 Cloudflare 上托管的 Tunnel ingress 配置。
      • 通过 Account ID 和 Tunnel ID 加载已有 Tunnel 。
      • 添加、编辑和删除 public hostname 规则,支持 hostname 、path 、服务类型、服务地址、Host Header 、Origin Server Name 和 TLS 校验选项。
      • 能在可解析时从本地 Tunnel token 自动带出 Account ID 和 Tunnel ID 。
      • 在执行 Cloudflare 管理操作前,可以校验 API 权限。
    • DDNS

      • 可选功能,复用远程 Tunnel 管理里的 Cloudflare API 凭据。
      • 从可配置的 IP source URL 检测公网 IPv4 和 IPv6 。
      • 创建和更新 Cloudflare A / AAAA 记录。
      • 支持 Cloudflare 代理状态、TTL 、DNS comment 、重试设置、手动同步和最近同步记录。
    • S3 WebDAV

      • 把一个或多个 S3 兼容 bucket 路径挂载成 WebDAV 端点。
      • 支持通用 S3 兼容服务和 Cloudflare R2 预设。
      • 每个挂载可以单独设置 endpoint 、region 、bucket 、root prefix 、mount path 、Access Key ID 、Secret Access Key 、WebDAV 账号密码和认证开关。
      • 支持 S3 连接测试和 WebDAV 连接测试。
      • 内置文件面板,可以列表、上传、下载、删除、重命名和创建目录。
      • WebDAV 可以走主 HTTP 服务,也可以走独立 HTTP 端口;两种模式互斥。
      • 独立 WebDAV 模式支持手动启动/停止、可选自动启动、直连端口、自定义公开 URL ,以及跳转到 Cloudflare Tunnel 规则创建。
      • 浏览器对 WebDAV 路径发起 GET 时,会显示只读文件列表或下载文件;PROPFINDPUTDELETEMKCOLMOVECOPYLOCKUNLOCK 等方法保持 WebDAV 行为。
    • MCP 访问

      • 可选的 Model Context Protocol 端点,路径为 /mcp
      • 使用 UI 中生成的 Bearer Token 认证。
      • 提供隧道状态/配置、隧道启动/停止、最近日志、远程 Tunnel 管理操作,以及启用 DDNS 后的 DDNS 操作工具。
    • 日志和运维

      • 提供最近日志 API 和可选实时日志流。
      • 支持在浏览器里过滤、复制、下载和清空日志。
      • HTTP 服务包含 panic recovery 和请求日志中间件。
    • 功能开关

      • 远程 Tunnel 管理、DDNS 、MCP 、S3 WebDAV 都是可选功能。
      • 未启用的功能不会显示对应 Tab 。
      • DDNS 依赖远程 Tunnel 管理,因为它复用同一套 Cloudflare API 凭据。
    • 多语言 UI

      • 内置英文、中文、日文界面翻译。

    快速开始

    Docker

    docker run -d \
      --name cfui \
      -p 14333:14333 \
      -v cfui-data:/app/data \
      -v cfui-logs:/app/logs \
      --restart unless-stopped \
      ghcr.io/dockers-x/cfui:latest
    

    打开:

    http://localhost:14333
    

    Docker Hub 镜像:

    docker run -d \
      --name cfui \
      -p 14333:14333 \
      -v cfui-data:/app/data \
      -v cfui-logs:/app/logs \
      --restart unless-stopped \
      czyt/cfui:latest
    

    Docker Compose

    services:
      cfui:
        image: ghcr.io/dockers-x/cfui:latest
        container_name: cfui
        restart: unless-stopped
        ports:
          - "14333:14333"
          # 如果使用独立 S3 WebDAV 端口,可以额外暴露:
          # - "14334:14334"
        volumes:
          - cfui-data:/app/data
          - cfui-logs:/app/logs
        environment:
          BIND_HOST: 0.0.0.0
          PORT: 14333
          TZ: UTC
          # 可选:通过环境变量注入 Cloudflare API 凭据,避免保存在 UI 中。
          # CFUI_TUNNEL_MGMT_ENABLED: "true"
          # CLOUDFLARE_ACCOUNT_ID: your-account-id
          # CLOUDFLARE_TUNNEL_ID: your-tunnel-id
          # CLOUDFLARE_API_TOKEN: your-api-token
        healthcheck:
          test: ["CMD", "sh", "-c", "wget --no-verbose --tries=1 --spider http://localhost:$$PORT/ || exit 1"]
          interval: 30s
          timeout: 3s
          start_period: 5s
          retries: 3
    
    volumes:
      cfui-data:
      cfui-logs:
    

    软件仓库 https://github.com/dockers-x/cfui

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   890 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 21:20 · PVG 05:20 · LAX 14:20 · JFK 17:20
    ♥ Do have faith in what you're doing.