1P

1panel-app-builder

Builds and manages local apps for the 1Panel platform.

Install

mkdir -p .claude/skills/1panel-app-builder && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18060" && unzip -o skill.zip -d .claude/skills/1panel-app-builder && rm skill.zip

Installs to .claude/skills/1panel-app-builder

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

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.
222 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Package Docker deployments as 1Panel local app store apps
  • Convert GitHub projects to 1Panel app packages
  • Transform `docker-compose.yml` files into 1Panel app structures
  • Convert `docker run` commands to 1Panel app packages
  • Fix 1Panel app metadata and port variables
  • Validate app packages before commit

How it works

This skill builds or reviews 1Panel local app store packages by converting Docker deployment configurations into a structured directory format with metadata and validation.

Inputs & outputs

You give it
./scripts/generate-app.sh --app-key my-app --name MyApp --version 1.2.3 ./docker-compose.yml
You get back
A new 1Panel app package structure for 'my-app' is created, including `data.yml`, `README.md`, and `docker-compose.yml`.

When to use 1panel-app-builder

  • Package docker app
  • Create 1Panel app store manifest
  • Validate app structure
  • Convert docker-compose to 1Panel app

About this skill

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.

When not to use it

  • When needing to create placeholder `logo.png` files
  • When using host absolute volume paths instead of relative `./data/...` paths
  • When `additionalProperties.key` does not match the app directory name

Limitations

  • Requires adherence to 1Panel rules for container names, restart policies, and network usage.
  • Icon policy dictates specific lookup order and disallows placeholders for final delivery.

How it compares

This skill automates the process of packaging Docker applications for the 1Panel app store, ensuring adherence to specific structural and metadata requirements, unlike manual file creation.

Compared to similar skills

1panel-app-builder side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
1panel-app-builder (this skill)019dReviewIntermediate
deployment-engineer43moNo flagsAdvanced
devops26moReviewIntermediate
ecs22moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

deployment-engineer

sickn33

Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation. Masters GitHub Actions, ArgoCD/Flux, progressive delivery, container security, and platform engineering. Handles zero-downtime deployments, security scanning, and developer experience optimization. Use PROACTIVELY for CI/CD design, GitOps implementation, or deployment automation.

418

devops

mrgoonie

Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm). Use for serverless, containers, CI/CD, GitOps, security audit.

216

ecs

itsmostafa

AWS ECS container orchestration for running Docker containers. Use when deploying containerized applications, configuring task definitions, setting up services, managing clusters, or troubleshooting container issues.

215

exa-deploy-integration

jeremylongshore

Deploy Exa integrations to Vercel, Fly.io, and Cloud Run platforms. Use when deploying Exa-powered applications to production, configuring platform-specific secrets, or setting up deployment pipelines. Trigger with phrases like "deploy exa", "exa Vercel", "exa production deploy", "exa Cloud Run", "exa Fly.io".

01

local-environment

polarsource

Local development environment management for Polar using Docker

10

openevidence-deploy-integration

jeremylongshore

Deploy OpenEvidence integrations to healthcare production environments. Use when deploying to production, setting up staging environments, or configuring cloud deployments for clinical AI applications. Trigger with phrases like "deploy openevidence", "openevidence staging", "openevidence production deploy", "release openevidence".

10

Search skills

Search the agent skills registry