
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
apcupsd-master-slave是一个基于Ubuntu的Docker容器,内置apcupsd工具,用于管理和监控一个或多个连接的UPS设备。它能够在长时间断电时优雅关闭主机和UPS本身,且无需对主机进行任何定制,无需主机上的 cron 任务或触发文件及脚本,所有操作均在容器内完成。
容器还集成了Postfix,支持通过Gmail的SMTP服务发送电源事件的邮件和SMS通知。同时支持自定义版本的WoLweb,可在供电恢复后唤醒断电期间关闭的系统。
ymlversion: '3.7' services: apcupsd: image: bnhf/apcupsd:latest container_name: apcupsd hostname: apcupsd_ups # 每个apcupsd实例使用唯一主机名,将用于apcupsd-cgi和邮件通知 devices: - /dev/usb/hiddev0 # 主节点需匹配APC UPS使用的USB设备,从节点注释此行 ports: - 3551:3551 environment: - UPSNAME=${UPSNAME} # 设置UPS名称(1-8个字符),用于系统托盘通知、apcupsd-cgi和Grafana仪表板 volumes: - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket # 支持从容器关闭主机 - /data/apcupsd:/etc/apcupsd # /etc/apcupsd可绑定到目录或Docker卷
ymlversion: '3.7' services: apcupsd: image: bnhf/apcupsd:latest container_name: apcupsd hostname: apcupsd_ups # 每个apcupsd实例使用唯一主机名,将用于apcupsd-cgi和邮件通知 devices: - /dev/usb/hiddev0 # 主节点需匹配APC UPS使用的USB设备,从节点注释此行 ports: - 3551:3551 environment: - UPSNAME=${UPSNAME} # 设置UPS名称(1-8个字符),用于系统托盘通知、apcupsd-cgi和Grafana仪表板 # 非USB连接的环境变量(包括不直接连接UPS的从节点): # - UPSCABLE=${UPSCABLE} # 连接UPS的系统通常无需更改(默认=usb),从节点设置为ether # - UPSTYPE=${UPSTYPE} # 连接UPS的系统通常无需更改(默认=usb),从节点设置为net # - DEVICE=${DEVICE} # 仅从节点使用,设置主节点的主机名或IP地址及监听端口(:3551) # 监控和关闭UPS连接设备及UPS本身的环境变量: # - POLLTIME=${POLLTIME} # apcupsd轮询UPS状态的间隔(秒)(默认=60) # - ONBATTERYDELAY=${ONBATTERYDELAY} # 检测到断电后启动电池模式的延迟时间(秒)(默认=6) # - BATTERYLEVEL=${BATTERYLEVEL} # 电池电量低于此百分比时发送关机信号(默认=5) # - MINUTES=${MINUTES} # 剩余电量时间低于此时长时发送关机信号(分钟)(默认=5) # - TIMEOUT=${TIMEOUT} # 电池供电时间超过此时长时发送关机信号(秒)(默认=0) # - KILLDELAY=${KILLDELAY} # 发送关机请求后尝试关闭UPS的延迟时间(秒,非零值生效)(默认=0) # 定时UPS自检的环境变量: # - SELFTEST=${SELFTEST} # 每隔x小时请求UPS执行自检(默认=336) # 列出与此主节点连接的从节点的两个环境变量: # - APCUPSD_HOSTS=${APCUPSD_HOSTS} # 若为主节点,在此输入APCUPSD_HOSTS列表(含本系统,空格分隔) # - APCUPSD_NAMES=${APCUPSD_NAMES} # 与APCUPSD_HOSTS列表一一对应(含本系统,空格分隔) # 设置本地时区(替代UTC): - TZ=${TZ} # 更新apcupsd脚本和.conf文件的环境变量(即使绑定了持久化主机数据目录) # 通常脚本一旦保存在绑定目录就不会被覆盖,但脚本会定期更新,避免过时 # 若未手动编辑脚本,可保持为true - UPDATE_SCRIPTS=${UPDATE_SCRIPTS} # 设置为true将用最新版本覆盖所有apcupsd脚本和.conf文件 # 通过Gmail SMTP接收电源故障事件或紧急UPS维护的邮件/SMS通知的环境变量 # 无需使用个人Gmail账户,可创建新账户并启用2FA和"应用密码" # 仍可发送通知到个人账户或通过运营商的Email-to-SMS网关发送到手机 - SMTP_GMAIL=${SMTP_GMAIL} # 用于SMTP的Gmail账户(需启用2FA) - GMAIL_APP_PASSWD=${GMAIL_APP_PASSWD} # apcupsd使用的Gmail账户应用密码 - NOTIFICATION_EMAIL=${NOTIFICATION_EMAIL} # 接收电池状态等通知的邮箱(任何有效邮箱均可) - POWER_RESTORED_EMAIL=${POWER_RESTORED_EMAIL} # 供电恢复后是否发送邮件通知(设为true) # 断电期间关闭的系统恢复供电后唤醒相关环境变量(需配置bnhf/wolweb容器): - WOLWEB_HOSTNAMES=${WOLWEB_HOSTNAMES} # 启动时发送WoL魔术包的主机名列表(空格分隔) - WOLWEB_PATH_BASE=${WOLWEB_PATH_BASE} # WoLweb路径(http://之后,/hostname之前,如raspberrypi6:8089/wolweb/wake) - WOLWEB_DELAY=${WOLWEB_DELAY} # 发送WoL魔术包前的延迟时间(秒) # 关闭一个或多个Proxmox节点的环境变量(需先关闭所有VM和CT,可将其配置为apcupsd从节点) # 创建"shutdown" pve域用户,仅分配"shutdown"角色的Sys.PowerMgmt权限,然后创建API令牌 # 可列出匹配数量的主机、节点和令牌,或通过同一主机和令牌列出多个节点: - PVE_SHUTDOWN_HOSTS=${PVE_SHUTDOWN_HOSTS} # 用于API关闭的pve主机名(或IP)有序列表,与PVE_SHUTDOWN_NODES和PVE_SHUTDOWN_TOKENS匹配 - PVE_SHUTDOWN_NODES=${PVE_SHUTDOWN_NODES} # pve节点有序列表,与PVE_SHUTDOWN_HOSTS和PVE_SHUTDOWN_TOKENS匹配 - PVE_SHUTDOWN_TOKENS=${PVE_SHUTDOWN_TOKENS} # pve API令牌有序列表,格式为<username>@<node>!<api_token>=<api_secret> # 健康检查选项,在Portainer中显示UPS是否在线并与apcupsd通信(推荐): healthcheck: test: ["CMD-SHELL", "apcaccess | grep -E 'ONLINE' >> /dev/null"] # 健康检查命令 interval: 30s # 健康检查间隔 timeout: 5s # 检查超时时间 retries: 3 # 重试次数 start_period: 15s # 启动等待时间 # system_bus_socket绑定始终用于主机关闭,数据目录可按如下绑定或使用Docker卷 volumes: - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket # 支持从容器关闭主机 - /data/apcupsd:/etc/apcupsd # /etc/apcupsd可绑定到目录或Docker卷 restart: unless-stopped # 若倾向使用Docker卷而非目录绑定,按需取消注释以下内容 # volumes: # 仅用于卷绑定 # config: # 若卷不存在,堆栈名称将附加到卷名前 # external: true # 若提前创建了Docker卷,使用此指令
可粘贴到Portainer-Stacks"高级"环境变量部分的完整环境变量列表。将${}部分替换为实际值,删除不使用的变量:
consoleUPSNAME=${UPSNAME} UPSCABLE=${UPSCABLE} UPSTYPE=${UPSTYPE} DEVICE=${DEVICE} POLLTIME=${POLLTIME} ONBATTERYDELAY=${ONBATTERYDELAY} BATTERYLEVEL=${BATTERYLEVEL} MINUTES=${MINUTES} TIMEOUT=${TIMEOUT} KILLDELAY=${KILLDELAY} SELFTEST=${SELFTEST} APCUPSD_HOSTS=${APCUPSD_HOSTS} APCUPSD_NAMES=${APCUPSD_NAMES} TZ=${TZ} UPDATE_SCRIPTS=${UPDATE_SCRIPTS} SMTP_GMAIL=${SMTP_GMAIL} GMAIL_APP_PASSWD=${GMAIL_APP_PASSWD} NOTIFICATION_EMAIL=${NOTIFICATION_EMAIL} POWER_RESTORED_EMAIL=${POWER_RESTORED_EMAIL} WOLWEB_HOSTNAMES=${WOLWEB_HOSTNAMES} WOLWEB_PATH_BASE=${WOLWEB_PATH_BASE} WOLWEB_DELAY=${WOLWEB_DELAY} PVE_SHUTDOWN_HOSTS=${PVE_SHUTDOWN_HOSTS} PVE_SHUTDOWN_NODES=${PVE_SHUTDOWN_NODES} PVE_SHUTDOWN_TOKENS=${PVE_SHUTDOWN_TOKENS}
!apcupsd-cgi界面
基于Debian 11(Bullseye)的Docker镜像,包含nginx-light作为Web服务器、fcgiwrap作为CGI服务器和apcupsd-cgi。apcupsd-cgi配置为通过标准端口3551连接主机上的apcupsd守护进程。Nginx配置为连接fcgiwrap(CGI服务器)并在端口80上直接提供multimon.cgi。容器暴露端口80,可按需重映射(建议使用3552)。
apcupsd-cgi的Docker Compose配置(推荐使用Portainer-Stacks)
ymlversion: '3.7' services: apcupsd-cgi: image: bnhf/apcupsd-cgi:latest container_name: apcupsd-cgi dns_search: localdomain # 设置为局域网域名(通常为local或localdomain),有助于本地主机名DNS解析 ports: - 3552:80 environment: - UPSHOSTS=${UPSHOSTS} # 连接APC UPS的计算机主机名或IP地址有序列表(空格分隔,无引号) - UPSNAMES=${UPSNAMES} # 状态页面上显示的位置名称有序列表(与UPSHOSTS顺序匹配,空格分隔,无引号) - TZ=${TZ} # 状态页面使用的时区,默认UTC volumes: - /data/apcupsd-cgi:/etc/apcupsd restart: unless-stopped
所需环境变量(或直接在compose中硬编码值):
!TIG stack监控界面
用于监控UPS设备的TIG(telegraf-InfluxDB-Grafana)堆栈,几乎无需配置。
定制更新版WoLweb用于发送Wake-on-LAN魔术包。提供Web界面,用于输入断电恢复后需唤醒的以太网连接系统的主机名和MAC地址。也可通过Web界面或可收藏的URL用于一般唤醒目的:
!WoLweb界面
WoLweb的Docker Compose配置
ymlversion: '3.7' services: wolweb: image: bnhf/wolweb:latest container_name: wolweb environment: - WOLWEBPORT=${WOLWEBPORT} # WoLweb使用的端口(推荐8089) - WOLWEBVDIR=${WOLWEBVDIR} # WoLweb的虚拟目录(推荐/wolweb) - WOLWEBBCASTIP=${WOLWEBBCASTIP} # 子网广播IP(含端口,通常为192.168.0.255:9或192.168.1.255:9) volumes: - /data/wolweb:/wolweb/data # 将目录绑定到/wolweb/data以实现数据持久化 network_mode: host # 仅host网络模式支持WoL魔术包 restart: unless-stopped
完整说明文档可参考:[***]
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






来自真实用户的反馈,见证轩辕镜像的优质服务