$ show 1Panel-dev/appstore
This repository is the official application store catalog for the 1Panel server management panel. It contains hundreds of versioned definitions for self-hosted software (databases, CMS, monitoring, AI tools, messaging, etc.), each packaged with a Docker Compose template, a structured data.yml metadata file defining installation form fields, and lifecycle scripts (init, upgrade, uninstall). The repository itself is not a running service; it is a curated, machine-readable configuration catalog consumed by the 1Panel platform to present one-click deployment options and manage application upgrades. The architecture follows a consistent pattern: apps/<name>/<version>/ with standardized docker-compose.yml files using external networks (1panel-network), PANEL_* environment variables, and labels createdBy: "Apps". The repo relies on external Docker images and the 1Panel runtime, and uses Renovate bots and CI workflows to track upstream version changes and enforce validation rules (e.g., OpenResty module catalog checks). It also bundles complex components like a WAF rule set for OpenResty and AI prompt templates for applications such as TrendRadar, showcasing cross-app reusability of configuration patterns.
The LLM identified 3 files worth highlighting for reuse:
A shell script that automates version bumping in app definitions. It extracts the current version from the docker-compose.yml image tag, updates the data.yml metadata, and renames the app version directory accordingly. This works across all apps that follow the standard layout, enabling centralized version control without manual per-app edits. It is a clean, parameterized script that can be adapted for any Docker-based app catalog to keep multiple component versions synchronized.
A structured JSON rule for a web application firewall that defines a vulnerability detection pattern with fields for state, name, CVE, type, and detailed rule conditions (method, URI, parameters, headers). This schema supports modular, extensible WAF rule sets and is reusable for any request-filtering or IPS system. The rule format is self-contained and can be extracted as a reference for building generic security rule engines.
A representative example of the standardized data.yml schema used across the entire app store. It defines installation parameters as formFields with multilingual labels (en, zh, ja, ko, etc.), default values, validation rules, and environment variable bindings (e.g., PANEL_APP_PORT_HTTP). This pattern enables automatic generation of installation UIs in multiple languages and is reusable for any app packaging system requiring parameterized deployment forms.