# 预制模板应用

快速上手 Luxonis 生态系统的最快方式是使用模板应用。该应用是你自己应用程序的起点，包含所有必要的组件，助你快速启动。应用范围从非常简单的管道（例如摄像头流）到复杂的综合性应用（例如使用自定义 AI 模型和节点）。

### 安装

在 5 分钟内启动并运行：

```bash
# 安装核心软件包
pip install depthai --force-reinstall
# 克隆模板应用
git clone https://github.com/luxonis/oak-template.git
# 切换到模板应用目录
cd oak-template
# 安装依赖
pip install -r requirements.txt
```

这会将模板/预制应用下载到当前目录。

```text
template-app/
├── main.py
├── oakapp.toml
├── requirements.txt
├── media/ # 可选的媒体文件
└── utils/ # 可选的辅助函数
```

### main.py

这是你主要逻辑所在的位置。下载的脚本将使用"摄像头 + 神经网络 + HUB"作为默认管道。如果你不需要神经网络或 HUB 功能，可以自由替换为下方任意其他示例。

### DepthAI 示例

如果你希望使用不同的管道，可以在此处找到可用节点及其示例列表

[DepthAI 示例](https://docs.luxonis.com/software-v3/depthai/examples.md)

### oakapp.toml

这是你定义容器构建过程的地方。对于模板应用，我们建议使用 Luxonis 基础镜像，并从 requirements.txt 安装 Python 依赖。更多信息请参见
[此处](https://docs.luxonis.com/software-v3/oak-apps/oakctl.md)。

```toml
identifier = "custom.oakapp"
app_version = "1.0.0"

prepare_container = [
    { type = "RUN", command = "apt-get update" },
    { type = "RUN", command = "apt-get install -y python3 python3-pip wget git" },
]

prepare_build_container = []

build_steps = ["pip3 install -r /app/requirements.txt --break-system-packages"]

entrypoint = ["bash", "-c", "python3 /app/main.py"]

[base_image]
api_url = "https://registry-1.docker.io"
service = "registry.docker.io"
oauth_url = "https://auth.docker.io/token"
auth_type = "repository"
auth_name = "luxonis/oakapp-base"
image_name = "luxonis/oakapp-base"
image_tag = "1.2.6"
```

### HUB 身份验证（可选）

如果你正在使用 Luxonis HUB（如"摄像头 + 神经网络 + HUB（默认）"示例中所示），你需要使用 HUB API 密钥进行身份验证。最安全且简单的方法是在应用的根文件夹中创建一个 .env 文件，并插入以下内容：

```bash
# .env 文件的内容
DEPTHAI_HUB_API_KEY=<在此处插入你的 HUB API 密钥>
```

要获取 API 密钥，你需要先创建一个 Luxonis HUB 账户，然后 [导航到团队设置](https://hub.luxonis.com/team-settings?view=page)，并点击"创建 API 密钥"按钮。

这样做是安全的，因为 .env 文件会被 git 自动忽略，因此不存在将你的私有 API 密钥上传到公共仓库被他人看到的风险。.env 文件中的变量由 dotenv 库加载，认证将自动使用存储在 DEPTHAI_HUB_API_KEY
环境变量中的密钥完成。请查看我们的 [API 密钥安全——最佳实践](https://docs.luxonis.com/software-v3/oak-apps/apikey-good-practices.md)页面，了解更多安全传递 API
密钥到应用的示例。

### 部署

现在你已经有了 main.py 和 oakapp.toml，可以通过以下方式之一部署你的应用：

### 独立运行

这是最简单的选项。只需在与 main.py 和 oakapp.toml 文件相同的目录中运行以下命令：

```bash
oakctl app run .
```

该命令会将你的应用构建成一个容器，并直接在 OAK 设备上运行，无需主机侧的应用进程。结果可以通过可视化器 Web 应用在 http://<device-ip>:8082 查看。

### 外设模式

此选项适用于您希望在主机上运行应用程序。此模式下不需要容器化，但需要与设备保持稳定连接。要以外设模式运行应用程序，请执行以下命令：

```bash
python3 main.py
```

可通过可视化器 Web 应用在 http://<host-ip>:8082 查看结果。

### 后续步骤

### 继续开发

跟随 OAK Apps 部分的教程和指南，继续开发您的应用程序。

[继续开发](https://docs.luxonis.com/software-v3/oak-apps.md)

### 将应用发布到 Luxonis Hub

构建并发布应用，以便您的团队可以从 Hub 安装它。

[将应用发布到 Luxonis Hub](https://docs.luxonis.com/cloud/features/application-management/uploading-applications.md)
