mirror of
https://github.com/arch3rPro/1Panel-Appstore.git
synced 2026-04-15 00:17:12 +08:00
395 lines
9.1 KiB
Markdown
395 lines
9.1 KiB
Markdown
|
|
# 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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 带数据库的应用
|
|||
|
|
|
|||
|
|
### 示例:NocoDB(PostgreSQL)
|
|||
|
|
|
|||
|
|
**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 类型参数
|