unraid-xml-generator

by ashanzzz

|

3.8k编码与调试未扫描2026年4月6日

安装

claude skill add --url https://github.com/openclaw/skills

文档

Unraid XML Generator

Core Pattern

The key insight for Unraid Docker templates:

xml
<Container version="2">
  <Name>mycontainer</Name>
  <Repository>image:tag</Repository>
  <Network>bridge</Network>

  <!-- KEY: override ENTRYPOINT to /bin/sh -->
  <ExtraParams>--entrypoint /bin/sh</ExtraParams>

  <!-- KEY: pass real startup command through shell -ec -->
  <PostArgs>-ec 'real startup command here'</PostArgs>

  <!-- User-configurable variables -->
  <Config Name="Display Name" Target="ENV_VAR" Default="..." Type="Variable" Display="always" Required="false" Mask="true">default_value</Config>
  <Config Name="Port" Target="PORT" Default="8080" Mode="tcp" Type="Port" Display="always" Required="true">8080</Config>
  <Config Name="Data Path" Target="/data" Default="/mnt/user/appdata/mycontainer" Mode="rw" Type="Path" Display="always" Required="true">/mnt/user/appdata/mycontainer</Config>
</Container>

Template Field Reference

FieldPurpose
<Name>Unique container identifier
<Repository>Docker image with tag
<Registry>Registry URL (optional, informational)
<Network>Network mode: bridge, host, none
<Shell>Default shell (bash / sh)
<ExtraParams>Extra docker run flags (e.g. --entrypoint /bin/sh)
<PostArgs>Startup command passed to shell -ec
<WebUI>Format: http://[IP]:[PORT:nnnn]/ — shows button in Unraid UI
<Icon>URL to icon image
<Category>Unraid category string
<Config>User-configurable parameter

Config Types

TypeExample
VariableEnvironment variable (Target = env var name)
PortPort mapping (Mode="tcp"/"udp")
PathVolume path (Mode="rw"/"ro")
SliderNumeric slider (requires Min, Max, Step)
DescriptionRead-only description text

Config Display Options

Display valueWhen shown
alwaysAlways visible in UI
advancedHidden behind "Advanced" toggle
hiddenNever shown (manual config)

Masked Variables (secrets)

Set Mask="true" on Type="Variable" Config entries to:

  • Hide the value from the UI (shown as ••••••)
  • Treat as sensitive (API keys, tokens, passwords)

PostArgs Shell Pattern

bash
# Correct way to write PostArgs in XML:
<PostArgs>-ec 'export VAR1="value1" && export VAR2="value2" && exec real_command --flag arg'</PostArgs>

# Breaking down:
# -e  : exit on error
# -c  : read command from string (not stdin)
# '...' : single-quoted command string

Standard Config Variables to Include

For any container:

xml
<Config Name="HTTP Proxy" Target="HTTP_PROXY" Default="" Type="Variable" Display="advanced" Required="false" Mask="false">http://192.168.8.30:7893</Config>
<Config Name="HTTPS Proxy" Target="HTTPS_PROXY" Default="" Type="Variable" Display="advanced" Required="false" Mask="false">http://192.168.8.30:7893</Config>
<Config Name="NO Proxy" Target="NO_PROXY" Default="" Type="Variable" Display="advanced" Required="false" Mask="false">localhost,127.0.0.1,192.168.0.0/16</Config>
<Config Name="TZ" Target="TZ" Default="Asia/Shanghai" Type="Variable" Display="advanced" Required="false" Mask="false">Asia/Shanghai</Config>

Script Usage

bash
python3 scripts/generate_template.py \
  --name opencode \
  --image ghcr.io/anomalyco/opencode:latest \
  --port 4096 \
  --web-port 4097 \
  --output /tmp/opencode.xml

# Generate with all standard env vars:
python3 scripts/generate_template.py \
  --name opencode \
  --image ghcr.io/anomalyco/opencode:latest \
  --port 4096 \
  --web-port 4097 \
  --proxy 192.168.8.30:7893 \
  --tz Asia/Shanghai \
  --output /tmp/opencode.xml

Common Pitfalls

  1. Double quotes in PostArgs → escape as &quot; in XML
  2. ENTRYPOINT bypass → always use <ExtraParams>--entrypoint /bin/sh</ExtraParams>
  3. Shell variable substitution → use single quotes for PostArgs to prevent $VAR expansion by XML parser
  4. Template filename → must start with my- and end with .xml
  5. Path permissions → Unraid runs containers as PUID/PGID = 99/100 by default

Output

The generated XML file is placed at:

code
/boot/config/plugins/dockerMan/templates-user/my-<name>.xml

User must confirm before deploying (writing) to that path.

相关 Skills

前端设计

by anthropics

Universal
热门

面向组件、页面、海报和 Web 应用开发,按鲜明视觉方向生成可直接落地的前端代码与高质感 UI,适合做 landing page、Dashboard 或美化现有界面,避开千篇一律的 AI 审美。

想把页面做得既能上线又有设计感,就用前端设计:组件到整站都能产出,难得的是能避开千篇一律的 AI 味。

编码与调试
未扫描111.1k

网页构建器

by anthropics

Universal
热门

面向复杂 claude.ai HTML artifact 开发,快速初始化 React + Tailwind CSS + shadcn/ui 项目并打包为单文件 HTML,适合需要状态管理、路由或多组件交互的页面。

在 claude.ai 里做复杂网页 Artifact 很省心,多组件、状态和路由都能顺手搭起来,React、Tailwind 与 shadcn/ui 组合效率高、成品也更精致。

编码与调试
未扫描111.1k

网页应用测试

by anthropics

Universal
热门

用 Playwright 为本地 Web 应用编写自动化测试,支持启动开发服务器、校验前端交互、排查 UI 异常、抓取截图与浏览器日志,适合调试动态页面和回归验证。

借助 Playwright 一站式验证本地 Web 应用前端功能,调 UI 时还能同步查看日志和截图,定位问题更快。

编码与调试
未扫描111.1k

相关 MCP 服务

GitHub

编辑精选

by GitHub

热门

GitHub 是 MCP 官方参考服务器,让 Claude 直接读写你的代码仓库和 Issues。

这个参考服务器解决了开发者想让 AI 安全访问 GitHub 数据的问题,适合需要自动化代码审查或 Issue 管理的团队。但注意它只是参考实现,生产环境得自己加固安全。

编码与调试
83.0k

by Context7

热门

Context7 是实时拉取最新文档和代码示例的智能助手,让你告别过时资料。

它能解决开发者查找文档时信息滞后的问题,特别适合快速上手新库或跟进更新。不过,依赖外部源可能导致偶尔的数据延迟,建议结合官方文档使用。

编码与调试
51.7k

by tldraw

热门

tldraw 是让 AI 助手直接在无限画布上绘图和协作的 MCP 服务器。

这解决了 AI 只能输出文本、无法视觉化协作的痛点——想象让 Claude 帮你画流程图或白板讨论。最适合需要快速原型设计或头脑风暴的开发者。不过,目前它只是个基础连接器,你得自己搭建画布应用才能发挥全部潜力。

编码与调试
46.2k

评论