# 启动设置

> 如何在门户的 Startup 标签页中配置服务器的 Docker 镜像、安装命令和启动命令。

门户中的 **Startup** 标签页控制服务器如何构建和启动。它包含三个关键设置：**Docker 镜像**（运行时版本）、**安装命令**（依赖项设置）以及**启动命令**（启动你应用的命令）。正确设置这些内容，是服务器正常运行的关键。

## 你将学到

- 如何选择正确的 Docker 镜像（运行时版本）
- 安装命令与启动命令的区别
- Node.js 和 Python 的常见示例
- 如何使用 Startup 标签页进行交互式 Shell 访问

---

## Docker 镜像

Daki 将每台服务器运行在 Docker 容器中。**Docker 镜像**决定了该容器内可用的编程语言版本。

Startup 标签页中有一个下拉菜单用于选择镜像。请始终使其与你的应用所需的版本保持一致。

| 运行时 | 镜像示例 |
| :--- | :--- |
| Node.js | Node.js 22、Node.js 24、Node.js 26（较旧的版本标记为 EOL） |
| Python | Python 3.11 至 3.15（较旧的版本标记为 EOL） |
| Java | Java 17、Java 21 |
| 其他 | Rust、C#、Lua 等（付费套餐） |

> **警告:** 选择错误的运行时版本会导致启动失败。如果你的项目需要 Node.js 22 的功能，请不要选择 Node.js 18。

Node.js 和 Python 镜像是 **Daki Yolks**，每当发布安全修复时都会自动重新构建；重启服务器即可获取最新版本。标记为 **EOL** 的镜像不再接收安全更新。参见 [Eggs 与 Docker 镜像](https://daki.cc/zh/wiki/guides/eggs-and-images#daki-yolks-security-patched-images)。

---

## 安装命令

**安装命令**会在服务器设置或重新安装时运行一次。它用于安装依赖项并准备运行环境。

| 运行时 | 常用安装命令 |
| :--- | :--- |
| Node.js | `npm install` |
| Python | `pip install -r requirements.txt` |

设置此字段后，即可自动安装你的依赖项。你可以根据项目需要自由定制此命令 — 例如，如果你使用其他包管理器（如 `yarn install` 或 `pnpm install`）。

---

## 启动命令

**启动命令**会在每次服务器启动时运行。这才是真正启动你应用的命令。

| 应用类型 | 启动命令 |
| :--- | :--- |
| Node.js — 单一入口文件 | `node index.js` |
| Node.js — npm start 脚本 | `npm start` |
| Python — 单一入口文件 | `python main.py` |
| Python — 以模块方式运行 | `python -m mypackage` |

你可以根据项目结构、入口点，以及应用所需的任何标志或参数，自由定制启动命令。

**重要：** 文件名区分大小写。请确保启动命令中的文件名与文件管理器中显示的完全一致。

---

## 交互式 Shell 访问

如果你想直接与容器交互并手动运行命令 — 例如调试、检查文件或运行一次性命令 — 可以临时将**启动命令**设为 `bash`。

1. 进入 **Startup** 标签页。
2. 将**启动命令**改为 `bash`。
3. 重启服务器。
4. 打开 **Console** 标签页 — 你现在可以直接输入 Shell 命令。

> **警告:** 当启动命令设为 `bash` 时，你的应用**不会**自动启动。完成后请恢复原来的启动命令。详情参见[控制台与电源操作](https://daki.cc/zh/wiki/guides/console)。

---

## 更改 Egg（编程语言）

**Egg** 定义了整体的编程语言和框架。要从一种语言切换到另一种（例如 Node.js → Python），请使用 **Settings** 标签页 — 而不是 Startup 标签页。更改 Egg 会触发重新安装；建议事先备份。参见[服务器设置](https://daki.cc/zh/wiki/guides/server-settings)。

---

## 提示

- 在 Startup 标签页中更改任何设置后，请重启服务器使更改生效。
- 如果服务器在启动后立即崩溃，Console 标签页中的输出几乎总能说明原因。
- 请对照文件管理器中显示的文件名，仔细检查启动命令中的文件名。

---

## 下一步

- [环境变量](https://daki.cc/zh/wiki/guides/environment-variables) — 为你的机器人令牌和其他机密设置 `.env` 文件。
- [控制台与电源操作](https://daki.cc/zh/wiki/guides/console) — 启动服务器并查看输出。
- [服务器设置](https://daki.cc/zh/wiki/guides/server-settings) — 重新安装服务器或更改 Egg。

---
Source: https://daki.cc/zh/wiki/guides/startup-settings
