1panel-appstore-skills

Create 1Panel appstore/local-app installation packages for Dockerized applications from official repositories, Docker images, docker-compose.yml files, or a prepared app spec.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "1panel-appstore-skills" with this command: npx skills add 1panel/1panel-appstore

1Panel Appstore Skills

Package Dockerized applications into the 1Panel appstore/local-app format. Use official application sources for installation details and generate the app package from an intermediate spec.

Workflow

  1. Resolve the application source:
    • Repository URL: use the provided repository as the primary source.
    • App name only: search mainstream open-source code hosts and confirm the official repository.
    • Docker image or Compose file: collect the missing app metadata from official docs or the user.
  2. Inspect official files/docs for Docker image, Compose topology, ports, volumes, environment variables, runtime user, README content, website, docs, logo, and version.
  3. Read only the references needed:
    • references/source-policy.md before resolving Docker install details from an app name or repository URL.
    • references/appstore-format.md for 1Panel package rules.
    • references/appspec.md before writing the intermediate spec.
    • references/review-checklist.md before final handoff when you need a packaging checklist.
  4. Write an intermediate JSON spec, usually under /tmp/<app-key>-1panel-appspec.json or a task-specific output directory.
  5. Run scripts/generate_app_package.py --spec <spec.json> --output <output-dir> to create the package.
  6. Return the package path, generated version, source evidence, warnings, and local testing path.

Source Rules

  • Never invent Docker installation details. Docker image, ports, volumes, environment variables, dependencies, and runtime user must come from the official repository or official docs.
  • If the user provides a repository URL, do not switch sources unless that repository links to official docs needed for Docker installation.
  • If only an app name is provided, confirm the official repository before packaging. If it cannot be confirmed, ask for the repository URL.
  • Do not use third-party tutorials, unrelated Docker Hub pages, mirrors, or guessed Compose snippets.
  • Prefer official container images. Use a third-party image only when the official project has no public image or only documents source builds, the user explicitly accepts the third-party image, and the third-party image page or source repository clearly identifies the upstream project.
  • Always generate Docker-based packages. If no reliable containerization path exists, stop and state what is missing.

Package Rules

  • Prefer a single primary service when possible. For secondary services, use explicit names and make sure every service joins 1panel-network.
  • Use ${CONTAINER_NAME} for the primary service container name. Use ${CONTAINER_NAME}-<service> for secondary service container names.
  • Use PANEL_APP_PORT_HTTP for the primary web port. Use PANEL_APP_PORT_<PURPOSE> for additional ports.
  • Every ${...} variable in docker-compose.yml must be declared in version data.yml, except known 1Panel-provided values such as ${CONTAINER_NAME} and service-derived ${PANEL_DB_PORT}.
  • Put user-editable settings in version data.yml form fields. Use password fields for secrets.
  • Keep persistent data mounts relative, for example ./data:/app/data.
  • Keep generated changes scoped to the app package or skill resources requested by the user.

README and I18n

  • Generate root README.md in the concise existing appstore style: ## 产品介绍 and, when useful, ## 主要功能. Generate README_en.md with ## Introduction and ## Features when the upstream application website, repository README, or app UI supports English.
  • Do not put generated-package diagnostics, source evidence, local testing instructions, or long operational notes in app README files. Keep those in the final response or intermediate spec.
  • Fill i18n maps for root additionalProperties.description and every version data.yml form field label. Use the appstore language set en, es-es, ja, ms, pt-br, ru, ko, zh-Hant, zh, and tr.
  • Reuse translations already present in existing apps for common labels such as Port, HTTP Port, Web UI Port, Password, API Key, Token, Model, Provider, and Base URL. Do not invent specialized translations when no reliable source or existing pattern exists; prefer a clear English fallback and call out the assumption.

init.sh Rules

  • For every persistent relative volume, check whether the container runs as a non-root built-in user. Use official Dockerfile USER, official Compose user:, image docs, or installation docs as evidence. If the mounted directory must be writable by a non-root UID/GID, add an init_permissions or service volume_permissions entry so scripts/init.sh fixes ownership before startup.
  • init.sh content must be based on official application sources. Use init_source_evidence to record the official file or documentation that supports every generated init action.
  • Besides persistent directory permissions, add other init_commands only when official install docs require a host-side preflight step. Keep the script minimal.
  • Do not guess UID/GID values. If the official source does not reveal the runtime user and the app is known to fail on host-mounted volumes, stop and ask the user for the intended UID/GID or official container docs.
  • Let the package tree create persistent directories with .gitkeep; use init.sh to change permissions, not as the primary way to create expected directories.
  • If no init action is needed, do not generate scripts/ or scripts/init.sh.

Scripts

  • scripts/generate_app_package.py
    • Input: JSON app spec.
    • Output: apps/<key>/data.yml, README.md, README_en.md when applicable, logo.png, <version>/data.yml, <version>/docker-compose.yml, and data directories.
    • Use this instead of hand-writing package files when starting a new app package.
  • scripts/validate_app_package.py
    • Optional helper for basic generated-package checks.
    • Do not present it as a full 1Panel appstore review or runtime installation test.

Output Contract

When done, report:

  • App package path.
  • Generated version.
  • Source evidence used for Docker installation details.
  • Any warnings or assumptions.
  • Local test target: /opt/1panel/resource/apps/local/<app-key>.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Img2img

Generate images from text descriptions using DALL-E 3 while adhering to usage policies and avoiding realistic human faces.

Registry SourceRecently Updated
General

Habitat-GS-Navigator

Navigate and interact with photo-realistic 3DGS environments via the Habitat-GS Bridge. Use when: user asks to explore a 3D scene, perform embodied navigatio...

Registry SourceRecently Updated
General

Memory Palace

持久化记忆管理。Use when: 用户告诉你个人信息/偏好/习惯、需要记住项目状态/技术决策、完成任务后有可复用经验、用户说"记住""别忘了""下次注意"、需要回忆之前的对话内容。支持语义搜索和时间推理。

Registry SourceRecently Updated
General

Podcast Transcript Mining Authority Positioning

Extract guest appearances, speaking topics, and soundbites from podcast transcripts to build authority portfolios and generate podcast pitch templates. Use w...

Registry SourceRecently Updated