
nathanvaughn/powerpanel-business设备,实现UPS状态监控、事件响应、关机调度等功能。
可直接参考项目提供的docker-compose.yml配置文件启动。默认用户名和密码均为admin。
如需保留PowerPanel守护进程(ppbd和ppbwd)的标准输出和错误日志,可设置环境变量ENABLE_LOGGING=true。注意:日志文件会持续增长(每小时约4 MiB,每天约90 MiB),需定期清理。
若使用local或both标签,容器需访问UPS的USB设备,有两种配置方式:
通过共享/dev/usb(部分发行版可能还需/dev/bus/usb)让容器访问整个USB总线。docker run命令示例:
bashdocker run --device=/dev/usb:/dev/usb --device=/dev/bus/usb:/dev/bus/usb ...
docker-compose配置示例:
yamldevices: - "/dev/usb:/dev/usb" - "/dev/bus/usb:/dev/bus/usb"
需先获取UPS对应的设备路径,可通过以下命令(适用于大多数Linux系统):
bashups_type="Cyber Power" ups_dev_type="hiddev" dev_bus_usb_name=$(lsusb | grep "$ups_type" | sed -E -e "s/^Bus ([0-9][0-9][0-9]) Device ([0-9][0-9][0-9]):.+$/\/dev\/bus\/usb\/\1\/\2/") usb_product_name=$(sudo lsusb -D "$dev_bus_usb_name" 2>/dev/null | grep "iProduct" | sed -E -e "s/\s*iProduct\s*[0-9]*\s*//") dev_usb_name=$(sudo dmesg | grep "$usb_product_name" | grep "$ups_dev_type" | tail -n 1 | sed -E -e "s/.*$ups_dev_type([0-9]+).*/\/dev\/usb\/$ups_dev_type\1/") echo "$dev_usb_name"
假设输出为/dev/usb/hiddev0,docker-compose配置示例:
yamldevices: - "/dev/usb/hiddev0:/dev/usb/hiddev0"
注意:设备路径可能因USB端口变化、系统重启、内核更新等原因改变。
镜像将/usr/local/PPB/目录作为卷挂载,包含所有PowerPanel程序和数据。必须使用卷挂载,绑定挂载会覆盖容器内文件导致运行异常。docker-compose配置示例:
yamlvolumes: - ppb_data:/usr/local/PPB/ volumes: ppb_data:
镜像暴露以下端口:
建议至少暴露HTTP/HTTPS端口,启用SNMP可提供更多监控功能。docker-compose端口映射示例:
yamlports: - "3052:3052" - "53568:53568" - "161:161/udp" - "162:162/udp"
提供三种类型标签,对应不同部署模式(详见用户手册):
local:适用于UPS直连容器所在主机的场景,支持自定义事件脚本、关机调度、功率监控和UPS配置remote:适用于需响应其他UPS事件进行关机/重启的远程主机both:适用于多UPS环境,需管理本地直连UPS并响应其他UPS事件可通过标签指定PowerPanel版本(格式:{类型}-{版本号}),例如:
yamlimage: ghcr.io/nathanvaughn/powerpanel-business:local-490
安全提示:截至2022年5月,仅
481、486、490版本修复了log4j漏洞(CVE-2021-44228),建议使用这些版本。
使用{类型}-latest获取最新版本:
yamlimage: ghcr.io/nathanvaughn/powerpanel-business:remote-latest
⚠️ 警告:latest标签版本稳定性未经验证,建议使用特定版本标签。
可从以下仓库获取镜像:
要启用ESXi关机功能(替代本地关机选项),需在/usr/local/PPB/etc/config.properties中添加:
bashisVirtualAppliance = true
详见相关issue。
/usr/local/PPB/卷包含所有PowerPanel可执行文件(包括完整Java运行时),导致软件更新、迁移和备份困难。/usr/local/PPB/目录内容说明:| 相对路径 | 目录内容 | 是否包含用户数据 |
|---|---|---|
| /db_cloud/ | 云服务数据库 | 是 |
| /db_local/ | 本地数据库 | 是 |
| /extcmd/ | 事件触发脚本(*.sh) | 是 |
| /jre/lib/security/cacerts | SSL证书 | 是 |
| /cert/ | SSL安全密钥 | 可能 |
| /etc/ | UPS测试结果 | 可能 |
| /log/ | PPB输出日志 | 可能不 |
| /uploads/ | 未知 | 可能不 |
| /temp/ | 上传的配置文件 | 可能不 |
| /.install4j/ | 安装日志和程序 | 否 |
| /bin/ | PPB可执行程序 | 否 |
| /fonts/ | PPB字体 | 否 |
| /jre/ | Java运行时 | 否 |
| /lib/ | 程序库 | 否 |
| /licenses/ | 许可证 | 否 |
| /web/work/ | Web界面资源 | 否 |
| /web-server/ | Web界面代码/资源 | 否 |
ENABLE_LOGGING生成的日志文件名称基于容器启动时间,手动重启守护进程会覆盖旧日志。Origin头为空,Nginx示例:
nginxlocation / { proxy_pass http://ip:3052; proxy_set_header 'Origin' ''; }
local标签可能存在问题,可使用both标签替代。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务