跳到正文
cccskills
免费在 GitHub 公开

1panel-app-builder

Use when packaging Docker deployments as 1Panel local app store apps, including GitHub projects, docker-compose.yml files, docker run commands, app metadata, version directories, icons, README files, and 1Panel validation.

中文简介正在准备中。当前显示原文说明。

集成工具GitHubDocker
查看安装方法

包含的文件(12)

  • SKILL.md5.1 KB
  • evals/evals.json1.6 KB
  • examples/example-usage.md2.3 KB
  • README.md2.6 KB
  • references/1panel-examples.md9.1 KB
  • scripts/download-icon.sh7.6 KB
  • scripts/generate-app.sh27.0 KB
  • scripts/validate-app.sh11.6 KB
  • templates/data.yml.tpl1.1 KB
  • templates/docker-compose.yml.tpl396 B
  • tests/run_all.sh358 B
  • tests/test_skills_scripts.sh13.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

1Panel App Builder

Build or review 1Panel local app store packages from Docker deployments.

When To Use

Use this skill when the user asks to:

  • Add or package a 1Panel local app store app.
  • Convert a GitHub project, docker-compose.yml, or docker run command into apps/<app-key>/.
  • Fix 1Panel app metadata, port variables, compose files, README files, icons, or version directories.
  • Validate an app package before commit.

For detailed real app examples, read references/1panel-examples.md only when needed.

Required Shape

apps/<app-key>/
├── data.yml
├── logo.png
├── README.md
├── README_en.md
└── <version>/
    ├── data.yml
    ├── docker-compose.yml
    └── data/

Some apps also include latest/. When both latest/ and a concrete version exist, latest/ must use image tag latest, and the concrete version directory should use the pinned tag.

Workflow

  1. Inspect the source deployment.
    • GitHub: inspect README/deploy docs and registry image; the generator checks common compose paths before README docker run fallback.
    • Compose: parse services, image tags, ports, volumes, environment, dependencies.
    • Docker run: parse image, --name, -p/--publish, -v/--volume, -e/--env, and --env-file.
  2. Choose a stable app key.
    • Lowercase, hyphenated, directory-safe.
    • additionalProperties.key must match the directory name.
  3. Generate or edit app files.
    • Prefer latest/ plus a concrete version when a concrete image tag is known.
    • Preserve source volumes and environment unless they conflict with 1Panel conventions.
  4. Resolve a real icon.
    • Do not create placeholders.
    • Use --icon-mode skip for drafts, cache-only for offline work, and required when an icon is mandatory.
  5. Validate before delivery.
    • Run skills/scripts/validate-app.sh ./apps/<app-key>.
    • For Skill script changes, run skills/tests/run_all.sh.

1Panel Rules

  • container_name should be ${CONTAINER_NAME}.
  • Services should use restart: always.
  • Use external 1panel-network.
  • Port mappings should use PANEL_APP_PORT_* variables defined in the version data.yml.
  • Persistent mounts should prefer relative ./data/... paths.
  • Add labels: createdBy: "Apps".
  • Keep metadata tags aligned with top-level data.yaml.

Preferred port variables:

PANEL_APP_PORT_HTTP
PANEL_APP_PORT_HTTPS
PANEL_APP_PORT_API
PANEL_APP_PORT_ADMIN
PANEL_APP_PORT_PROXY
PANEL_APP_PORT_PROXY_HTTP
PANEL_APP_PORT_PROXY_HTTPS
PANEL_APP_PORT_DB
PANEL_APP_PORT_SSH
PANEL_APP_PORT_S3
PANEL_APP_PORT_SYNC

Scripts

Run from /root/github/1Panel-Appstore/skills unless noted.

Generate a draft:

./scripts/generate-app.sh --app-key my-app --name MyApp --version 1.2.3 --icon-mode skip ./docker-compose.yml

Useful generation options:

--output <dir>       Output base directory. Default: ./apps
--app-key <key>      Override app directory key.
--name <name>        Override display name.
--service <name>     Select the main service from a multi-service compose file.
--version <tag>      Override concrete version and image tag.
--icon-mode <mode>   auto|required|skip|cache-only
--icon-url <url>     Download icon from a known URL.
--force              Allow overwriting an existing generated directory.
--dry-run            Print parsed values without writing files.
--check-deps         Check required local tools.

Download an icon:

./scripts/download-icon.sh --mode cache-only redis ./logo.png
./scripts/download-icon.sh --mode required --url https://example.com/logo.png myapp ./logo.png

Validate an app:

./scripts/validate-app.sh ../apps/<app-key>

Validate Skill tooling:

./tests/run_all.sh

Icon Policy

Icon lookup order:

  1. Known explicit URL (--icon-url).
  2. Local cache under skills/.cache/icons.
  3. Dashboard Icons.
  4. Simple Icons.
  5. selfh.st Icons.

Missing icons are acceptable for drafts only. For final app delivery, leave logo.png absent and tell the user what is missing instead of inventing an inaccurate image.

Validation Gate

Before considering an app ready:

  • Run ./scripts/validate-app.sh ../apps/<app-key>.
  • Confirm latest/ uses :latest.
  • Confirm concrete version directories use matching image tags or document the exception.
  • Confirm every compose PANEL_APP_PORT_* variable exists in the version data.yml.
  • Inspect generated README and metadata manually; the generator is a starting point, not an authority.

Common Mistakes

  • Keeping a placeholder logo.png.
  • Using a host absolute volume path when ./data/... would work.
  • Forgetting to define a port variable used by docker-compose.yml.
  • Letting additionalProperties.key drift from the app directory name.
  • Treating generated metadata, descriptions, tags, and architectures as final without review.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

报告此技能的问题