Files
Arch1Panel/skills/references/1panel-examples.md
arch3rPro 1bf528acc8 feat: add AI-powered 1Panel app builder skill
- Add skill configuration for generating 1Panel app configs via AI
- Include templates for data.yml and docker-compose.yml
- Add utility scripts for app generation, icon download, and validation
- Provide reference examples and usage documentation
- Update .gitignore to exclude .trae directory
- Update README.md with skill usage instructions
2026-03-24 19:00:47 +08:00

395 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 1Panel 应用商店参考示例
本文件包含从 1Panel-Appstore 和 appstore 官方仓库提取的实际应用配置示例。
## 目录
1. [简单单服务应用](#简单单服务应用)
2. [带数据库的应用](#带数据库的应用)
3. [多端口应用](#多端口应用)
4. [多服务应用](#多服务应用)
5. [常见标签分类](#常见标签分类)
---
## 简单单服务应用
### 示例AList
**目录结构:**
```
alist/
├── logo.png
├── data.yml # 顶层元数据
├── README.md
├── README_en.md
└── 3.45.0/ # 版本目录
├── data.yml # 参数定义
├── docker-compose.yml
└── data/ # 数据目录
```
**顶层 data.yml**
```yaml
name: AList
tags:
- 实用工具
- 云存储
title: 支持多存储的文件列表程序和私人网盘
description: 支持多存储的文件列表程序和私人网盘
additionalProperties:
key: alist
name: AList
tags:
- Storage
- Tool
shortDescZh: 支持多存储的文件列表程序和私人网盘
shortDescEn: Supporting multi-storage file listing program and private cloud storage
description:
en: Supporting multi-storage file listing program and private cloud storage
ja: 複数ストレージのファイルリスト表示プログラムとプライベートクラウドストレージのサポート
ms: Menyokong program senarai fail multi-penyimpanan dan penyimpanan awan peribadi
pt-br: Suporte para programa de listagem de arquivos em múltiplos armazenamentos e armazenamento em nuvem privado
ru: Поддержка программы отображения файлов в нескольких хранилищах и частного облачного хранилища
ko: 다중 저장소 파일 목록 프로그램 및 개인 클라우드 저장소 지원
zh-Hant: 支援多存儲檔案列出程序和私人雲端空間
zh: 支持多存储文件列出程序和私有云存储
type: website
crossVersionUpdate: true
limit: 0
recommend: 65
website: https://alist.nn.ci/
github: https://github.com/alist-org/alist
document: https://alist.nn.ci/zh/guide/
architectures:
- amd64
- arm64
- arm/v7
- arm/v6
- s390x
```
**版本 data.yml参数定义**
```yaml
additionalProperties:
formFields:
- default: 5244
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: WebUI Port
labelZh: 网页端口
required: true
rule: paramPort
type: number
label:
en: WebUI Port
ja: WebUI ポート
ms: Port WebUI
pt-br: Porta WebUI
ru: Порт WebUI
ko: WebUI 포트
zh-Hant: WebUI 埠
zh: WebUI 端口
- default: 5426
edit: true
envKey: PANEL_APP_PORT_S3
labelEn: S3 Port
labelZh: S3 端口
required: true
rule: paramPort
type: number
label:
en: S3 Port
ja: S3 ポート
ms: Port S3
pt-br: Porta S3
ru: Порт S3
ko: S3 포트
zh-Hant: S3 埠
zh: S3 端口
```
**docker-compose.yml**
```yaml
services:
alist:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:5244"
- "${PANEL_APP_PORT_S3}:5426"
volumes:
- ./data/data:/opt/alist/data
- ./data/mnt:/mnt/data
environment:
- PUID=0
- PGID=0
- UMASK=022
image: xhofe/alist:v3.45.0
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true
```
---
## 带数据库的应用
### 示例NocoDBPostgreSQL
**docker-compose.yml**
```yaml
services:
nocodb:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:8080"
volumes:
- ./data/nocodb:/usr/app/data
environment:
- NC_DB=pg://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME}
- NC_AUTH_JWT_SECRET=${JWT_SECRET}
depends_on:
db:
condition: service_healthy
image: nocodb/nocodb:0.258.2
labels:
createdBy: "Apps"
db:
image: postgres:16-alpine
restart: always
networks:
- 1panel-network
volumes:
- ./data/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
interval: 5s
timeout: 5s
retries: 5
networks:
1panel-network:
external: true
```
**参数定义:**
```yaml
- default: 8080
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web Port
labelZh: Web端口
required: true
rule: paramPort
type: number
- default: nocodb
edit: true
envKey: DB_NAME
labelEn: Database Name
labelZh: 数据库名称
required: true
rule: paramCommon
type: text
- default: nocodb
edit: true
envKey: DB_USER
labelEn: Database User
labelZh: 数据库用户
required: true
rule: paramCommon
type: text
- default: nocodb_password
edit: true
envKey: DB_PASSWORD
labelEn: Database Password
labelZh: 数据库密码
required: true
rule: paramCommon
type: password
```
---
## 多端口应用
### 示例Nginx Proxy Manager
**参数定义:**
```yaml
formFields:
- default: 81
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Admin Port
labelZh: 管理端口
required: true
rule: paramPort
type: number
- default: 80
edit: true
envKey: PANEL_APP_PORT_NGINX_HTTP
labelEn: HTTP Port
labelZh: HTTP端口
required: true
rule: paramPort
type: number
- default: 443
edit: true
envKey: PANEL_APP_PORT_NGINX_HTTPS
labelEn: HTTPS Port
labelZh: HTTPS端口
required: true
rule: paramPort
type: number
```
**docker-compose.yml**
```yaml
services:
app:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:81"
- "${PANEL_APP_PORT_NGINX_HTTP}:80"
- "${PANEL_APP_PORT_NGINX_HTTPS}:443"
volumes:
- ./data/data:/data
- ./data/letsencrypt:/etc/letsencrypt
image: jc21/nginx-proxy-manager:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true
```
---
## 多服务应用
### 示例Dify完整栈
**docker-compose.yml**
```yaml
services:
api:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:80"
volumes:
- ./data/storage:/app/api/storage
environment:
- MODE=api
- SECRET_KEY=${SECRET_KEY}
depends_on:
- db
- redis
image: langgenius/dify-api:latest
labels:
createdBy: "Apps"
worker:
restart: always
networks:
- 1panel-network
environment:
- MODE=worker
- SECRET_KEY=${SECRET_KEY}
depends_on:
- db
- redis
image: langgenius/dify-api:latest
db:
image: postgres:15-alpine
restart: always
networks:
- 1panel-network
volumes:
- ./data/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=${DB_NAME}
redis:
image: redis:7-alpine
restart: always
networks:
- 1panel-network
volumes:
- ./data/redis:/data
networks:
1panel-network:
external: true
```
---
## 常见标签分类
### 中文标签tags
| 分类 | 标签 |
|------|------|
| 开发工具 | 开发工具 |
| 实用工具 | 实用工具 |
| 文档与笔记 | 文档与笔记 |
| 云存储 | 云存储 |
| 数据库 | 数据库 |
| 监控运维 | 监控运维 |
| 安全工具 | 安全工具 |
| 网络工具 | 网络工具 |
| 建站工具 | 建站工具 |
| AI/LLM | AI/LLM |
| 容器管理 | 容器管理 |
### 英文标签additionalProperties.tags
| 分类 | 标签 |
|------|------|
| 开发工具 | DevTool |
| 实用工具 | Utility |
| 文档与笔记 | Note |
| 云存储 | Storage |
| 数据库 | Database |
| 监控运维 | Monitor |
| 安全工具 | Security |
| 网络工具 | Network |
| 建站工具 | Website |
| AI/LLM | AI |
| 容器管理 | Container |
### 应用类型type
| 类型 | 说明 |
|------|------|
| website | Web应用默认 |
| runtime | 运行时环境(数据库等) |
| tool | 命令行工具 |
---
## 最佳实践
1. **版本号**:使用实际的镜像标签版本,如 `v3.45.0`,而非 `latest`
2. **推荐值**:优质应用设置 recommend: 60-80一般应用 30-50
3. **架构支持**:至少支持 amd64 和 arm64
4. **多语言**:至少提供中英文描述,推荐添加日韩俄等语言
5. **数据持久化**:使用 `./data/` 目录,避免绝对路径
6. **环境变量**:敏感信息使用 password 类型参数