# 环境变量说明

完整的环境变量集合可以在源码仓库的 docker/.env.example 文件中找到,以下是环境变量的详细说明:

# 公共变量

# SECURITY_KEY

系统加密密钥,由两个长度为 32 的随机字符串组成,中间使用.隔开。示例:f8ca6f4a11aba05d98d781297ad38b15.dbd5c7fa1dc2f4fe783f70a0df5e20f4

重要提示: 请务必修改默认的 SECURITY_KEY 值!使用默认密钥会带来安全风险,可能导致数据泄露或系统被恶意攻击。建议使用强随机字符串作为密钥,确保系统安全。可以通过在线工具或命令行生成随机字符串,例如使用 openssl rand -hex 16 命令生成长度为 32 的随机字符串。

# SSRAG_BIND_ADDRESS

SSRAG 系统访问绑定地址,默认:0.0.0.0,即所有地址均可访问,可以设置为 127.0.0.1 限制仅本地访问。

# SSRAG_PORT

SSRAG 系统访问绑定端口号,默认为 80 端口。

# 数据库配置

# DB_TYPE

数据库类型,数据库默认使用 PostgreSQL,可以根据需要更换为其他类型。

可使用的数据库类型包括:

  • postgres(默认):PostgreSQL 数据库。
  • mysql:MySql 数据库。
  • mariadb:MariaDB 数据库。
  • sqlserver:SqlServer 数据库。
  • sqlite:SQLite 数据库。
  • kingbase:人大金仓数据库。
  • dm:达梦数据库。
  • oceanbase:OceanBase 数据库。

# DB_HOST

数据库访问地址,指定数据库服务器的主机名或 IP 地址。例如:localhost127.0.0.1db.example.com

# DB_PORT

数据库端口号,指定数据库服务器监听的端口。不同数据库类型有默认端口:PostgreSQL 默认为 5432,MySQL 默认为 3306,SQL Server 默认为 1433。

# DB_USER

数据库用户名,用于连接数据库的身份认证。需要确保该用户具有足够的权限来访问指定的数据库。

# DB_PASSWORD

数据库密码,与用户名配套使用进行身份认证。建议使用强密码以确保数据库安全。

# DB_DATABASE

数据库名称,指定要连接的具体数据库实例。一个数据库服务器可以包含多个数据库,此参数用于选择特定的数据库进行操作。

# DB_SCHEMA

仅针对 PostgreSQL 数据库,可配合 TENANT_ID 环境变量实现多租户隔离,留空为 public

# Redis 配置

系统使用 Redis 作为数据 KV 缓存。

# REDIS_HOST

Redis 服务器地址,指定 Redis 服务器的主机名或 IP 地址。例如:localhost127.0.0.1redis.example.com

# REDIS_PORT

Redis 服务器端口号,指定 Redis 服务器监听的端口。默认值为 6379,这是 Redis 的标准端口。如果 Redis 服务器运行在非标准端口上,需要相应修改此配置。

# REDIS_PASSWORD

Redis 认证密码,用于连接 Redis 服务器时的身份验证。默认为空,表示无需密码认证。在生产环境中,建议设置强密码以确保 Redis 服务的安全性。

# REDIS_SSL

是否启用 SSL/TLS 加密连接,默认值为 false。当设置为 true 时,系统将通过加密通道与 Redis 服务器进行通信,提供额外的安全保障。在公网环境或对安全性要求较高的场景中,建议启用 SSL 连接。

# REDIS_DB

Redis Database,默认为 0,请和 CELERY_BROKER_DB、CELERY_BACKEND_DB 分开使用不同的 Database。

# REDIS_PREFIX

Redis 存储 Key 前缀,可配合 TENANT_ID 环境变量实现多租户隔离。

# Celery 消息中间件配置

Celery 是一个基于 Python 的分布式任务队列系统,用于处理异步任务和定时任务。它允许开发者将耗时的操作(如发送邮件、处理文件、调用外部 API 等)从主应用程序中分离出来,在后台异步执行,从而提高应用程序的响应性能和用户体验。

# CELERY_BROKER_DB

Celery 消息代理所使用的 Redis 数据库,用于存储待处理的任务消息。默认为 1,建议与 REDIS_DB 和 CELERY_BACKEND_DB 使用不同的数据库编号以避免冲突。

# CELERY_BACKEND_DB

Celery 结果后端所使用的 Redis 数据库,用于存储任务执行结果。默认为 2,建议与 REDIS_DB 和 CELERY_BROKER_DB 使用不同的数据库编号以确保数据隔离。

# 向量数据库配置

向量数据库是 RAG(检索增强生成)系统中的核心组件,负责存储和检索高维向量数据,可以根据需要选择合适的向量数据库。

# VECTOR_STORE

向量数据库类型。

可使用的向量数据库类型包括:

  • pgvector:使用 PostgreSQL 的 PGVector 组件作为向量数据库。
  • weaviate:使用 Weaviate 作为向量数据库。

# PGVector 配置项

PGVector 配置项,仅在 VECTOR_STORE 为 pgvector 时可用。

  • PGVECTOR_HOST

    PGVector 所在的 PostgreSQL 数据库主机地址,默认为 localhost。如果 PGVector 运行在远程服务器上,需要指定相应的 IP 地址或域名。

  • PGVECTOR_PORT

    PGVector 所在的 PostgreSQL 数据库端口号,默认为 5432。这是 PostgreSQL 的标准端口,如果数据库运行在非标准端口上,需要相应修改此配置。

  • PGVECTOR_USER

    PGVector 所在的 PostgreSQL 数据库用户名,用于连接数据库时的身份验证。

  • PGVECTOR_PASSWORD

    PGVector 所在的 PostgreSQL 数据库密码,用于连接数据库时的身份验证。

  • PGVECTOR_DATABASE

    PGVector 所在的 PostgreSQL 数据库名称,用于存储向量数据的数据库。

  • PGVECTOR_SCHEMA

    PGVector 所在的 PostgreSQL 数据库模式(Schema),可配合 TENANT_ID 环境变量实现多租户隔离,留空为 public

# Weaviate 配置项

Weaviate 配置项,仅在 VECTOR_STORE 为 weaviate 时可用。

  • WEAVIATE_URL

    Weaviate 端点地址,如:http://weaviate:8080

  • WEAVIATE_API_KEY

    连接 Weaviate 使用的 api-key 凭据。

  • WEAVIATE_PERSISTENCE_DATA_PATH

    Weaviate 数据持久化路径,用于存储向量数据和索引文件。

  • WEAVIATE_QUERY_DEFAULTS_LIMIT

    Weaviate 查询默认返回结果数量限制,控制单次查询返回的最大对象数量。

  • WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED

    是否启用 Weaviate 匿名访问,设置为 true 时允许无需认证的访问。

  • WEAVIATE_DEFAULT_VECTORIZER_MODULE

    Weaviate 默认向量化模块,用于将文本转换为向量表示,如 text2vec-openai、text2vec-cohere 等。

  • WEAVIATE_CLUSTER_HOSTNAME

    Weaviate 集群主机名,用于集群部署时的节点标识。

  • WEAVIATE_AUTHENTICATION_APIKEY_ENABLED

    是否启用 Weaviate API 密钥认证,设置为 true 时启用基于 API 密钥的身份验证。

  • WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS

    Weaviate 允许的 API 密钥列表,用于配置有效的 API 密钥。

  • WEAVIATE_AUTHENTICATION_APIKEY_USERS

    Weaviate API 密钥关联的用户列表,用于管理 API 密钥与用户的映射关系。

  • WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED

    是否启用 Weaviate 管理员列表授权,设置为 true 时启用基于管理员列表的权限控制。

  • WEAVIATE_AUTHORIZATION_ADMINLIST_USERS

    Weaviate 管理员用户列表,用于配置具有管理员权限的用户。

# 文件存储配置

用于存储知识库所上传的文件。

# STORAGE_TYPE

文件存储类型,local 为非加密存储,aliyun-oss 为加密存储。

可使用的文件存储类型包括:

  • local:使用本机磁盘作为文件存储。
  • aliyun-oss:使用阿里云 OSS 作为文件存储。

# 阿里云 OSS 配置项

阿里云 OSS 配置项,仅在 STORAGE_TYPE 为 aliyun-oss 时可用。

  • ALIYUN_OSS_ENDPOINT

    阿里云 OSS 服务端点地址,用于指定 OSS 服务的访问地址,如 https://oss-cn-hangzhou.aliyuncs.com

  • ALIYUN_OSS_REGION

    阿里云 OSS 服务区域,用于指定 OSS 存储桶所在的区域,如 cn-hangzhou

  • ALIYUN_OSS_ACCESS_KEY

    阿里云 OSS 访问密钥 ID,用于身份验证的访问凭证。

  • ALIYUN_OSS_SECRET_KEY

    阿里云 OSS 访问密钥 Secret,与 Access Key 配对使用的安全凭证。

  • ALIYUN_OSS_BUCKET_NAME

    阿里云 OSS 存储桶名称,用于指定文件存储的容器名称。

  • ALIYUN_OSS_BUCKET_URL

    阿里云 OSS 存储桶的访问 URL,用于文件的公开访问地址。

  • ALIYUN_OSS_PREFIX

    阿里云 OSS 文件路径前缀,用于在存储桶中组织文件结构的目录前缀。

# 其他

# COMPOSE_PROFILES

Docker Compose 配置文件选择器,用于指定要使用的 Docker Compose 配置文件,默认为 postgres,redis,即在 Docker 中启用 postgre 以及 redis 容器作为 SSRAG 基础支撑。

上次更新: 2025/9/13 下午9:44:16