Skip to content

环境变量参考

完整模板见仓库根目录 .env.example。推荐用 scripts/setup.sh 自动生成 .env,必填密钥会写入强随机值。

.env 解析顺序:先 server/.env,再项目根目录 .envdjango-environ 加载)。

凭据类配置不在环境变量里

AI Provider Key、Git Token、飞书应用凭据等运行时凭据在 Web 界面配置,经 Fernet 加密后存储在数据库(ProviderCredential / SystemSetting),不走环境变量。环境变量只承担部署级配置。

必填项

变量生成方式说明
SECRET_KEYopenssl rand -base64 32Django 密钥,用于加密签名
FRIDAY_ENCRYPTION_KEYopenssl rand -base64 32敏感数据加密密钥(Provider Key、Token 等)
RUNNER_REGISTRATION_TOKENopenssl rand -base64 32Runner 注册令牌,server 与 runner 共享
DATABASE_URL见下文数据库连接字符串

生产环境

为每个密钥生成独立随机值,不要复用示例值,不要跨环境复用。FRIDAY_ENCRYPTION_KEY 一旦丢失,数据库中所有加密凭据将无法解密。.env 权限建议 600

持久化与镜像

变量默认值说明
FRIDAY_DATA_DIR~/.friday-aiDocker bind mount 根目录(postgres / redis / qdrant / server / runner 子目录)
FRIDAY_IMAGE_PREFIXghcr.io/friday-ai-codes/friday-ai预构建镜像命名空间
FRIDAY_IMAGE_TAGlatest镜像标签,生产环境建议固定版本号
FRIDAY_TASK_IMAGE${FRIDAY_IMAGE_PREFIX}/task:${FRIDAY_IMAGE_TAG}任务容器镜像;本地调试设为 friday-task:latest

端口

变量默认值说明
FRIDAY_WEB_PORT10240Web 前端端口(Nginx 同时代理 API 与 WebSocket)
FRIDAY_PORT10241后端 API 直连端口(调试用)
FRIDAY_RUNNER_CALLBACK_PORT8976Runner 回调端口(宿主端口必须与容器端口一致)
REDIS_PORT6379Redis 端口
QDRANT_HTTP_PORT / QDRANT_GRPC_PORT6333 / 6334Qdrant 端口

Django 核心

变量默认值说明
DEBUGFalse调试模式,生产环境必须为 False
ALLOWED_HOSTS*生产环境建议限制为实际域名
FRIDAY_ENV / FRIDAY_PRODUCTION生产硬化开关:强制 DEBUG=False、要求非默认 SECRET_KEY 与显式 ALLOWED_HOSTS
DJANGO_LOG_LEVELINFO日志级别

数据库

变量默认值说明
DATABASE_URLpostgres://friday:${POSTGRES_PASSWORD:-friday}@postgres:5432/friday支持 PostgreSQL / MySQL / SQLite(本地开发:sqlite:///./data/friday.db
POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DBfriday / friday / friday内置 PostgreSQL 凭据

Redis 与 WebSocket

变量默认值说明
USE_REDIS_CHANNEL_LAYERfalseCompose 部署由编排注入 REDIS_URL 并启用;本地开发可用内存 Channel Layer
REDIS_URLredis://127.0.0.1:6379/0Redis 连接 URL
WEBSOCKET_REQUIRE_TLSfalseWebSocket TLS 要求(生产环境自动启用)

Qdrant

变量默认值说明
QDRANT_URLhttp://qdrant:6333Qdrant 地址
QDRANT_API_KEYfriday-local(compose 回落值)不要显式设为空字符串:qdrant 收到空值会开启「空 key 鉴权」,客户端不发空 key,导致健康检查 401
QDRANT_BUNDLEDtrue是否使用编排内置 Qdrant

Runner

变量默认值说明
FRIDAY_RUNNER_NAMEcompose-runnerRunner 名称
FRIDAY_RUNNER_EXECUTORdocker执行器类型(docker / k8s
DOCKER_GID0Docker 组 GID;Linux 上用 stat -c '%g' /var/run/docker.sock 获取

Runner 自身还支持 FRIDAY_RUNNER_* 前缀的全部配置项(viper 绑定,对应 config.toml)。

JWT 认证

变量默认值说明
JWT_SECRET_KEY使用 SECRET_KEYJWT 签名密钥
JWT_ACCESS_TOKEN_EXPIRE_MINUTES15Access Token 过期时间(分钟)
JWT_REFRESH_TOKEN_EXPIRE_DAYS7Refresh Token 过期时间(天)
COOKIE_SECURE / COOKIE_SAMESITE / COOKIE_HTTPONLYFalse / Lax / TrueCookie 安全设置

Gunicorn

变量默认值说明
GUNICORN_WORKERS1Worker 数量(建议 CPU 核数 × 2 + 1)
GUNICORN_TIMEOUT300Worker 超时秒数(WebSocket / SSE 长连接需要较长超时)

管理员(命令行兜底)

首次部署的管理员账号默认由 Web「首启初始化向导」创建,系统启动时不再自动建号。以下变量仅在手动执行 python manage.py init_superuser 时被读取:

变量默认值说明
FRIDAY_ADMIN_USERNAMEadmin管理员用户名
FRIDAY_ADMIN_PASSWORD—(留空随机生成并打印)管理员密码

重置已有管理员密码:python manage.py reset_superuser_password

飞书

变量默认值说明
FEISHU_ENCRYPT_KEY飞书事件加密密钥
FEISHU_SIGNATURE_REQUIREDfalse是否要求飞书签名验证

飞书应用凭据(App ID / Secret 等)在 Web 界面按项目配置,详见飞书集成

功能开关

变量默认值说明
FF_SYNC_WORKFLOW_TO_FEISHUtrue飞书同步
FF_ENABLE_WORKFLOW_WEBSOCKETtrueWebSocket 实时更新
FF_DEFAULT_WORKFLOW_TEMPLATEcode_generation默认工作流模板
FF_ENABLE_SCHEDULERtrue启用调度器(仓库同步轮询等)

下一步

基于 MIT License 发布