# ----------------------------------------------------------------------------- # TodoList API 环境变量示例 # 用法: # 1) 复制为 apps/api/.env # 2) 按实际环境替换值(尤其是密钥、密码、令牌) # ----------------------------------------------------------------------------- # [数据库] PostgreSQL 连接串 # 格式:postgresql://:@:/?schema=public DATABASE_URL="postgresql://postgres:postgres@localhost:5432/todolist?schema=public" # [鉴权] Access Token 签名密钥(生产环境必须使用高强度随机值) AUTH_ACCESS_SECRET="dev-access-secret" # [鉴权] Access Token 有效期(秒),默认 15 分钟 AUTH_ACCESS_EXPIRES_IN_SECONDS="900" # [鉴权] Refresh Token 有效期(秒),默认 30 天 AUTH_REFRESH_EXPIRES_IN_SECONDS="2592000" # [鉴权] 邮箱验证码有效期(秒),默认 5 分钟 AUTH_EMAIL_CODE_TTL_SECONDS="300" # [2FA] TOTP 签发方名称(会显示在验证器 App 中) AUTH_TOTP_ISSUER="TodoList" # [OAuth - GitHub] 第三方登录配置 OAUTH_GITHUB_CLIENT_ID="github-client-id" OAUTH_GITHUB_CLIENT_SECRET="github-client-secret" OAUTH_GITHUB_CALLBACK_URL="http://localhost:3000/auth/oauth/github/callback" # [OAuth - QQ] 第三方登录配置 OAUTH_QQ_CLIENT_ID="qq-client-id" OAUTH_QQ_CLIENT_SECRET="qq-client-secret" OAUTH_QQ_CALLBACK_URL="http://localhost:3000/auth/oauth/qq/callback" OAUTH_QQ_AUTH_URL="https://graph.qq.com/oauth2.0/authorize" OAUTH_QQ_TOKEN_URL="https://graph.qq.com/oauth2.0/token" # [OAuth - 微信] 第三方登录配置 OAUTH_WECHAT_CLIENT_ID="wechat-client-id" OAUTH_WECHAT_CLIENT_SECRET="wechat-client-secret" OAUTH_WECHAT_CALLBACK_URL="http://localhost:3000/auth/oauth/wechat/callback" OAUTH_WECHAT_AUTH_URL="https://open.weixin.qq.com/connect/qrconnect" OAUTH_WECHAT_TOKEN_URL="https://api.weixin.qq.com/sns/oauth2/access_token" # [对象存储] S3/MinIO 配置(附件上传) # 本地开发可使用 MinIO,生产可切换到云厂商 S3 兼容服务 S3_ENDPOINT="http://127.0.0.1:9000" S3_REGION="us-east-1" S3_BUCKET="todolist" S3_ACCESS_KEY_ID="minioadmin" S3_SECRET_ACCESS_KEY="minioadmin" # MinIO 常用 true;AWS S3 常用 false S3_FORCE_PATH_STYLE="true" # 预签名上传 URL 的有效期(秒) S3_PRESIGN_EXPIRES_SECONDS="900" # 对外访问附件的基础地址(用于拼接公开 URL) S3_PUBLIC_BASE_URL="http://127.0.0.1:9000" # [邮件] SMTP 配置(验证码/DDL 提醒邮件) MAIL_SMTP_HOST="smtp.example.com" MAIL_SMTP_PORT="465" # 465 通常为 true(SSL),587 通常为 false(STARTTLS) MAIL_SMTP_SECURE="true" MAIL_SMTP_USER="no-reply@example.com" MAIL_SMTP_PASS="replace-with-smtp-password" # 发件人显示名称与地址 MAIL_FROM_NAME="TodoList" MAIL_FROM_ADDRESS="no-reply@example.com" # [数据加密] 服务端敏感数据加密主密钥 # 用于加密 AI 配置、任务内容、同步 payload、附件元数据等数据库字段 # 请使用高强度随机字符串,生产环境务必单独保管 DATA_ENCRYPTION_SECRET="replace-with-a-long-random-secret" # [对象存储加密] 服务端对象加密策略,默认使用 AES256;如需关闭可填写 NONE S3_SERVER_SIDE_ENCRYPTION="AES256"