mirror of
https://github.com/adnanh/webhook.git
synced 2026-07-22 09:48:14 +00:00
feat: 添加config 能力
命令行参数优先级高于配置文件(配置文件先加载,flag.Parse() 后执行会覆盖)
This commit is contained in:
parent
0645b1404f
commit
cc338cd3ac
3 changed files with 287 additions and 0 deletions
160
webhook.yaml.example
Normal file
160
webhook.yaml.example
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
# Webhook 配置文件
|
||||
# 用法: webhook -c /etc/webhook/webhook.yaml
|
||||
#
|
||||
# 支持所有命令行参数。
|
||||
# 列表类参数(hooks、header)使用 YAML 数组语法。
|
||||
# 布尔类参数使用 true/false。
|
||||
# 命令行参数优先级高于本配置文件。
|
||||
|
||||
# ============================================================
|
||||
# 网络设置
|
||||
# ============================================================
|
||||
|
||||
# 监听地址,默认 0.0.0.0(监听所有网卡)
|
||||
ip: 0.0.0.0
|
||||
|
||||
# 监听端口,默认 9000
|
||||
port: 1987
|
||||
|
||||
# URL 前缀,最终 hook 地址为 http://host:port/PREFIX/hook-id
|
||||
# 默认值为 "hooks"
|
||||
urlprefix: wh
|
||||
|
||||
# 限制允许的 HTTP 方法,多个方法用逗号分隔(如 "POST,PUT")
|
||||
# 留空表示允许所有方法
|
||||
# http-methods: "POST"
|
||||
|
||||
# ============================================================
|
||||
# Hook 定义文件
|
||||
# ============================================================
|
||||
|
||||
# hook 定义文件路径,支持 JSON 和 YAML 格式
|
||||
# 可指定多个文件,每个文件中的 hook id 不能重复
|
||||
hooks:
|
||||
- /etc/webhook/admin.yaml
|
||||
- /etc/webhook/hooks.yaml
|
||||
|
||||
# ============================================================
|
||||
# 运行行为
|
||||
# ============================================================
|
||||
|
||||
# 当无法加载任何 hook 时不要 panic 退出(需配合非 verbose 模式)
|
||||
# 默认 false
|
||||
nopanic: true
|
||||
|
||||
# 监视 hook 文件变化,自动热重载
|
||||
# 默认 false
|
||||
hotreload: true
|
||||
|
||||
# 将 hook 文件作为 Go template 解析
|
||||
# 默认 false
|
||||
# template: false
|
||||
|
||||
# multipart 表单解析时的最大内存(字节),超出部分写入磁盘临时文件
|
||||
# 默认 1048576 (1MB)
|
||||
# max-multipart-mem: 1048576
|
||||
|
||||
# ============================================================
|
||||
# 日志设置
|
||||
# ============================================================
|
||||
|
||||
# 启用详细日志输出
|
||||
# 默认 false
|
||||
# verbose: true
|
||||
|
||||
# 启用调试输出(会打印完整的请求/响应内容,隐含 verbose=true)
|
||||
# 默认 false
|
||||
# debug: false
|
||||
|
||||
# 日志输出到文件(设置后隐含 verbose=true)
|
||||
# 留空表示输出到 stdout
|
||||
# logfile: /var/log/webhook.log
|
||||
|
||||
# ============================================================
|
||||
# 自定义响应头
|
||||
# ============================================================
|
||||
|
||||
# 所有 hook 响应都会附带这些 header,格式为 "Name=Value"
|
||||
# header:
|
||||
# - "X-Custom-Header=value"
|
||||
# - "Access-Control-Allow-Origin=*"
|
||||
|
||||
# ============================================================
|
||||
# Request ID
|
||||
# ============================================================
|
||||
|
||||
# 使用客户端传入的 X-Request-Id 头作为请求 ID(用于日志追踪)
|
||||
# 默认 false
|
||||
# x-request-id: false
|
||||
|
||||
# 截断 X-Request-Id 的最大长度,0 表示不限制
|
||||
# x-request-id-limit: 0
|
||||
|
||||
# ============================================================
|
||||
# TLS / HTTPS 设置
|
||||
# ============================================================
|
||||
|
||||
# 启用 HTTPS 模式
|
||||
# 默认 false
|
||||
# secure: false
|
||||
|
||||
# TLS 证书文件路径
|
||||
# cert: /etc/webhook/cert.pem
|
||||
|
||||
# TLS 私钥文件路径
|
||||
# key: /etc/webhook/key.pem
|
||||
|
||||
# TLS 最低版本,可选 "1.0", "1.1", "1.2", "1.3"
|
||||
# 默认 "1.2"
|
||||
# tls-min-version: "1.2"
|
||||
|
||||
# TLS 加密套件,逗号分隔。留空使用 Go 默认值
|
||||
# 可通过 webhook --list-cipher-suites 查看可用列表
|
||||
# cipher-suites: ""
|
||||
|
||||
# ============================================================
|
||||
# Admin 管理界面
|
||||
# ============================================================
|
||||
|
||||
# 启用 Admin UI 和 API,用于在线管理 hooks
|
||||
# 默认 false
|
||||
# admin: false
|
||||
|
||||
# Admin 界面的 URL 前缀,最终地址为 http://host:port/PREFIX/
|
||||
# 默认 "admin"
|
||||
# admin-path: admin
|
||||
|
||||
# Admin 登录使用的 TOTP 密钥(Base32 编码)
|
||||
# 可用 Google Authenticator 等 APP 扫码登录
|
||||
# admin-totp-secret: ""
|
||||
|
||||
# 用于签发 Admin JWT 会话令牌的密钥
|
||||
# admin-jwt-secret: ""
|
||||
|
||||
# Admin JWT 会话有效期,支持 Go duration 格式(如 12h、30m、720h)
|
||||
# 默认 "12h"
|
||||
# admin-session-ttl: "12h"
|
||||
|
||||
# ============================================================
|
||||
# Unix Socket(仅 Linux/macOS)
|
||||
# ============================================================
|
||||
|
||||
# 使用 Unix socket 代替 IP:Port 监听
|
||||
# 设置后 ip 和 port 选项将被忽略
|
||||
# socket: /tmp/webhook.sock
|
||||
|
||||
# ============================================================
|
||||
# 权限降级(仅 Linux/macOS)
|
||||
# ============================================================
|
||||
|
||||
# 打开监听端口后切换到指定的用户/组 ID 运行
|
||||
# setuid 和 setgid 必须同时设置,不能与 socket 同时使用
|
||||
# setuid: 1000
|
||||
# setgid: 1000
|
||||
|
||||
# ============================================================
|
||||
# PID 文件
|
||||
# ============================================================
|
||||
|
||||
# 创建 PID 文件,用于进程管理
|
||||
# pidfile: /var/run/webhook.pid
|
||||
Loading…
Add table
Add a link
Reference in a new issue