环境变量
文件位置
开发环境
当使用代码安装运行,且使用pnpm dev
启动项目时,默认启动了开发环境,此时环境变量位于项目目录的config/.env.development
文件中。
生产环境
当直接使用Docker运行或者代码运行使用pnpm start
启动时,默认开启了生产环境,此时环境变量路径为项目目录的config/.env
文件中。
Docker环境配置详情
如果您是通过Docker运行,请按照以下步骤配置环境变量:
- 从GitHub下载环境变量样例文件:
bash
curl -o .env https://raw.githubusercontent.com/ppagent/sample/main/config/.env.sample
- 将下载的样例文件移动到config目录并重命名为.env:
bash
mkdir -p config
mv .env config/.env
- 根据需要修改config/.env文件中的配置信息:
bash
nano config/.env
# 或使用其他文本编辑器
- 通过Docker命令启动容器,确保映射config目录:
bash
docker run -d \
--name ppagent \
-p 5050:5050 \
-v $(pwd)/config:/app/config \
-v $(pwd)/data:/app/data \
-v $(pwd)/public:/app/public \
--restart unless-stopped \
ppagent/ppagent:latest
- 或者在docker-compose.yml文件中配置映射:
yaml
version: "3"
services:
ppagent:
image: ppagent/ppagent:latest
container_name: ppagent
restart: unless-stopped
ports:
- "5050:5050"
volumes:
- ./config:/app/config
- ./data:/app/data
- ./public:/app/public
通过以上配置,您的环境变量将被正确映射到容器中的/app/config/.env文件。
配置详解
日志配置
配置项 | 含义 | 默认值 |
---|---|---|
LOG_LEVEL | 日志级别,可选值:"fatal" | "error" | "warn" | "info" | "debug" | "trace" | trace |
服务信息配置
配置项 | 含义 | 默认值 |
---|---|---|
HOST | API监听的本地ip地址,0.0.0.0表示全部 | 0.0.0.0 |
PORT | API监听的本地端口,通过Docker运行时不建议修改 | 5050 |
PRIVATE_HOST | 如果有服务通过内网访问,则需要设置为可以被内网机器访问的IP。不设置则默认与API_HOST一致 | - |
PUBLIC_HOST | 外部访问地址,用于插件从外部访问系统接口或资源,无需http前缀 | - |
PUBLIC_TUNNEL_NAME | 如果PUBLIC_HOST留空,用于自定义ngrok子域名 | - |
PUBLIC_TUNNEL_TOKEN | NGROK的authtoken | - |
PUBLIC_PORT | 外网访问端口,SSL下默认443,否则默认80 | - |
PUBLIC_SSL | 是否启用SSL,0表示非SSL,1表示SSL | 0 |
PUBLIC_PATH | 公共路径 | /public |
PUBLIC_TOKEN | API服务授权验证token,不提供则随机生成 | - |
PUBLIC_FORCE_AUTH | 是否强制所有服务需要授权认证,0表示否,1表示是 | 0 |
在线配置服务
配置项 | 含义 | 默认值 |
---|---|---|
OFFLINE | 是否完全使用离线模式,true表示完全本地配置 | false |
CONFIG_SERVER_URL | 配置服务器地址,结尾无需带/ | - |
CONFIG_SERVER_EMAIL | 配置服务器用户名 | - |
CONFIG_SERVER_PASSWORD | 配置服务器密码 | - |
其他配置
配置项 | 含义 | 默认值 |
---|---|---|
REDIS_URL | 缓存REDIS的连接串,不设置则直接缓存到内存 | - |
VERIFY_FILE | 验证站点归属文件的路径 | - |
SECRETS_FILE | 密钥文件路径 | ./config/.secrets.json |
TRACE_HTTP_REQUEST | 是否开启HTTP请求记录到trace日志,0为关闭,1为开启 | 0 |
NPM_REGISTRY | 用于在线安装插件的NPM镜像地址 | https://registry.npmmirror.com |
NPM_TIMEOUT | 安装NPM依赖的超时毫秒数 | 30000 |
PLUGIN_API_MAX_NOTIFY_COUNT | API插件留存通知的最大条数 | 10 |
PLUGIN_API_CHECK_NOTIFY_FEQ_SECONDS | API插件通知检查频率(秒) | 20 |
PLUGIN_API_NOTIFY_EXPIRES_SECONDS | API插件通知过期时间(秒) | 3600 |
SERVER_COMPRESS | 是否启用压缩 | 1 |
SERVER_COMPRESS_MIN_SIZE | 启用压缩的最小尺寸(字节) | 10240 |
SERVER_COMPRESS_MIME | 启用压缩的文件类型 | text/plain,text/html,text/css,application/javascript,application/json |
DB_PROVIDER | 本地存储数据库类型,支持sqlite,mysql,pg,mongodb | sqlite |
DB_CONNECTION | 数据库连接信息,sqlite为文件路径,其他为连接串 | ./data/chat.db |
MINIO_ENABLE | 是否启用Minio存储 | 0 |
MINIO_ENDPOINT | Minio服务器地址,仅域名或IP | - |
MINIO_PORT | Minio服务器端口 | 9000 |
MINIO_ACCESS_KEY | Minio访问密钥 | - |
MINIO_SECRET_KEY | Minio密钥 | - |
MINIO_MESSAGE_BUCKET | Minio消息存储桶名称 | messages |
MINIO_SSL | 是否启用Minio SSL | 1 |