Skip to content

环境变量

文件位置

开发环境

使用代码安装运行,且使用pnpm dev启动项目时,默认启动了开发环境,此时环境变量位于项目目录的config/.env.development文件中。

生产环境

当直接使用Docker运行或者代码运行使用pnpm start启动时,默认开启了生产环境,此时环境变量路径为项目目录的config/.env文件中。

Docker环境配置详情

如果您是通过Docker运行,请按照以下步骤配置环境变量:

  1. 从GitHub下载环境变量样例文件:
bash
curl -o .env https://raw.githubusercontent.com/ppagent/sample/main/config/.env.sample
  1. 将下载的样例文件移动到config目录并重命名为.env:
bash
mkdir -p config
mv .env config/.env
  1. 根据需要修改config/.env文件中的配置信息:
bash
nano config/.env
# 或使用其他文本编辑器
  1. 通过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
  1. 或者在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

服务信息配置

配置项含义默认值
HOSTAPI监听的本地ip地址,0.0.0.0表示全部0.0.0.0
PORTAPI监听的本地端口,通过Docker运行时不建议修改5050
PRIVATE_HOST如果有服务通过内网访问,则需要设置为可以被内网机器访问的IP。不设置则默认与API_HOST一致-
PUBLIC_HOST外部访问地址,用于插件从外部访问系统接口或资源,无需http前缀-
PUBLIC_TUNNEL_NAME如果PUBLIC_HOST留空,用于自定义ngrok子域名-
PUBLIC_TUNNEL_TOKENNGROK的authtoken-
PUBLIC_PORT外网访问端口,SSL下默认443,否则默认80-
PUBLIC_SSL是否启用SSL,0表示非SSL,1表示SSL0
PUBLIC_PATH公共路径/public
PUBLIC_TOKENAPI服务授权验证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_COUNTAPI插件留存通知的最大条数10
PLUGIN_API_CHECK_NOTIFY_FEQ_SECONDSAPI插件通知检查频率(秒)20
PLUGIN_API_NOTIFY_EXPIRES_SECONDSAPI插件通知过期时间(秒)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,mongodbsqlite
DB_CONNECTION数据库连接信息,sqlite为文件路径,其他为连接串./data/chat.db
MINIO_ENABLE是否启用Minio存储0
MINIO_ENDPOINTMinio服务器地址,仅域名或IP-
MINIO_PORTMinio服务器端口9000
MINIO_ACCESS_KEYMinio访问密钥-
MINIO_SECRET_KEYMinio密钥-
MINIO_MESSAGE_BUCKETMinio消息存储桶名称messages
MINIO_SSL是否启用Minio SSL1