环境变量
如何在 Daki Hosting 上使用 .env 文件为你的应用配置环境变量。
环境变量可以让你把配置值(例如 Discord 机器人令牌或 API 密钥)传递给应用,而无需将它们硬编码在源代码中。在 Daki Hosting 上,推荐的做法是直接在服务器上使用 门户的文件管理器或 SFTP 创建一个 .env 文件。
你将学到
- 什么是环境变量,以及它们为何重要
- 如何在服务器上创建
.env文件 - 如何在 Node.js 和 Python 中加载
.env的值 - 保持机密安全的最佳实践
什么是环境变量?
环境变量是键值对,运行中的应用可以从其运行环境中读取。它们是以下场景的标准方式:
- 将敏感值(令牌、API 密钥、密码)与代码分开存储
- 无需修改或重新部署源文件即可更改配置
- 避免将机密提交到版本控制中
创建 .env 文件
在 Daki 上管理环境变量最简单、最可靠的方法是在服务器上创建一个 .env 文件。你可以通过两种方式完成:
方式一:使用文件管理器(快速编辑)
- 在门户(portal.daki.cc)中打开你的服务器。
- 进入 Files 标签页。
- 点击 New File,并将其命名为
.env。 - 点击该文件,在网页编辑器中打开它,并添加你的变量:
.env
BOT_TOKEN=your_discord_bot_token_here PORT=3000 DATABASE_URL=your_db_connection_string - 点击 Save。
- 重启你的服务器。
方式二:使用 SFTP(推荐用于初次设置)
通过 SFTP 连接到你的服务器(凭据位于 Settings 标签页),然后直接从本地计算机上传你的 .env 文件。SFTP 设置说明参见文件管理器。
切勿将 .env 文件提交到公开的 Git 仓库。请将 .env 添加到 .gitignore 文件中,以防止机密意外泄露。
在应用中加载 .env 的值
应用不会自动读取 .env 文件 — 你需要一个库将它们加载到环境变量中。
安装该包(将其添加到 package.json 的依赖中):
JSON
{
"dependencies": {
"dotenv": "^16.0.0"
}
}在入口文件的最顶部加载它:
JavaScript
require('dotenv').config();
const token = process.env.BOT_TOKEN;
const port = process.env.PORT || 3000;将 python-dotenv 添加到你的 requirements.txt:
Shell
python-dotenv在入口文件的顶部加载它:
Python
from dotenv import load_dotenv
import os
load_dotenv()
token = os.environ.get("BOT_TOKEN")
port = int(os.environ.get("PORT", 3000)).env 文件格式
.env 文件中的每一行都遵循 KEY=VALUE 格式:
.env
# Comments start with a hash
BOT_TOKEN=your_token_here
API_KEY=some_api_key
DB_HOST=localhost
DB_PORT=5432
DEBUG=false- 键名通常为大写字母并使用下划线分隔。
- 值不需要引号,但也支持使用引号。
- 以
#开头的行是注释,会被忽略。
最佳实践
- 切勿在源代码中硬编码令牌或机密,尤其是当你的代码托管在 GitHub 上时。
- 将
.env添加到.gitignore,确保它永远不会被意外提交。 - 在服务器上创建
.env文件,而不是在本地创建 — 或者使用 SFTP 上传本地的.env,并将其排除在版本控制之外。 - 创建或修改
.env文件后,重启你的服务器。 - 使用描述性的键名,让你的配置本身就具有说明性。
下一步
- 启动设置 — 配置安装命令、启动命令和 Docker 镜像。
- 部署 Discord.js 机器人 — 包括令牌设置在内的完整部署流程。
- 部署 Python 机器人 — 包括令牌设置在内的完整部署流程。