← Back to Skills Marketplace
🔌

1Panel Appstore skill

by 1Panel · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
76
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install 1panel-appstore
Description
Create 1Panel appstore/local-app installation packages for Dockerized applications from official repositories, Docker images, docker-compose.yml files, or a...
README (SKILL.md)

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/\x3Capp-key>-1panel-appspec.json or a task-specific output directory.
  5. Run scripts/generate_app_package.py --spec \x3Cspec.json> --output \x3Coutput-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}-\x3Cservice> for secondary service container names.
  • Use PANEL_APP_PORT_HTTP for the primary web port. Use PANEL_APP_PORT_\x3CPURPOSE> 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/\x3Ckey>/data.yml, README.md, README_en.md when applicable, logo.png, \x3Cversion>/data.yml, \x3Cversion>/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/\x3Capp-key>.
Usage Guidance
This skill appears to do what it claims: generate 1Panel app packages from official repos, images, or a spec, using only python3. Before using: (1) Provide or confirm the official repository or image (the generator follows a strict 'official sources only' policy). (2) Review any generated scripts/init.sh and docker-compose.yml before deploying — the generator will write init commands or permission fixes if present in the spec, and those should be verified. (3) Run the generator in a safe/isolated environment (or inspect outputs) if you are unsure about untrusted specs. (4) The skill does not request credentials or phone home in the included code, but the agent may need network access to inspect upstream docs/repos if you ask it to discover sources automatically — consider supplying the repo URL to avoid extra searches.
Capability Analysis
Type: OpenClaw Skill Name: 1panel-appstore Version: 1.0.0 The bundle provides a framework for an AI agent to generate 1Panel application packages. It is classified as suspicious because `scripts/generate_app_package.py` facilitates the creation of a shell script (`init.sh`) by directly embedding strings from the `init_commands` field of a JSON specification without programmatic sanitization or validation. While `SKILL.md` contains responsible instructions for the agent to use only official sources and `scripts/validate_app_package.py` checks for risky Docker configurations (e.g., `privileged: true`, `docker.sock`), the inherent capability to generate arbitrary shell scripts for root-level execution represents a significant risk if the agent's input is manipulated via prompt injection.
Capability Tags
requires-sensitive-credentials
Capability Assessment
Purpose & Capability
The name and description match the provided artifacts. Required binaries (python3) are reasonable for the included Python generator/validator scripts. The repo contains SKILL.md, references, and two Python scripts whose functionality (validate/generate app packages) aligns with the stated purpose.
Instruction Scope
SKILL.md instructs the agent to resolve official sources, produce an intermediate JSON spec, run scripts/generate_app_package.py, and write packages to /tmp or a user-specified output directory. The instructions do not ask the agent to read unrelated system configuration or secret stores. One operational note: the workflow expects the agent (or user) to inspect upstream repositories/docs (which implies network access) and the generator can embed provided init_commands or volume_permissions into a generated scripts/init.sh — the generator writes those files but does not execute them. You should review generated init.sh and any generated compose files before deploying.
Install Mechanism
No install spec; this is instruction + included scripts only. There are no remote downloads, no installers, and no archives extracted from remote URLs. All code is present in the package and requires only a local Python runtime.
Credentials
The skill requests no environment variables or credentials. The scripts handle app secrets as form fields inside generated specs (e.g., APP_SECRET) but do not attempt to read or transmit host credentials. No unexpected credential names or config paths are requested.
Persistence & Privilege
always: false and there is no attempt to modify other skills or system-wide agent settings. The skill writes generated package files to the output directory you choose (e.g., /tmp or apps/); it does not run containers or other privileged operations itself. Note: final deployment of a generated package (outside this skill) could run scripts/init.sh — review those before executing on production hosts.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install 1panel-appstore
  3. After installation, invoke the skill by name or use /1panel-appstore
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release for 1panel-appstore-skills. - Packages Dockerized applications into the 1Panel appstore/local-app format using official sources. - Resolves app sources from repository URLs, app names, Docker images, or Compose files. - Enforces strict source and packaging rules: only uses details from official repositories or docs. - Generates intermediate app specs and app packages via `scripts/generate_app_package.py`, supporting i18n and user-editable fields. - Reports app package path, generated version, source evidence, warnings, and local test directory in outputs.
Metadata
Slug 1panel-appstore
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is 1Panel Appstore skill?

Create 1Panel appstore/local-app installation packages for Dockerized applications from official repositories, Docker images, docker-compose.yml files, or a... It is an AI Agent Skill for Claude Code / OpenClaw, with 76 downloads so far.

How do I install 1Panel Appstore skill?

Run "/install 1panel-appstore" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is 1Panel Appstore skill free?

Yes, 1Panel Appstore skill is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does 1Panel Appstore skill support?

1Panel Appstore skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created 1Panel Appstore skill?

It is built and maintained by 1Panel (@1panel); the current version is v1.0.0.

💬 Comments