# ws_usernode 服务器用户管理节点 —— 配置示例 # 复制为 config.toml 后按需修改;敏感项(SMTP 密码)建议通过环境变量覆盖: # USERNODE_SMTP_PASSWORD=xxx # 环境变量覆盖规则:USERNODE_
_(字段名 camelCase 转大写蛇形; # 连续大写缩写按一个词处理),例如 USERNODE_DATABASE_DSN、 # USERNODE_POLICY_OTPTTL、USERNODE_POLICY_DEFAULT_TTL。 [app] name = "ws_usernode" env = "development" # development / production [server] listen = "127.0.0.1:8080" # 生产建议 0.0.0.0:8080 并置于反向代理后 session_ttl = "24h" # cookie 会话时长 trusted_proxies = ["127.0.0.1", "::1"] [database] driver = "sqlite" # sqlite(开发)/ mysql(生产) dsn = "data/usernode.db" # sqlite 文件路径;mysql 形如 # usernode:pass@tcp(127.0.0.1:3306)/usernode?charset=utf8mb4&parseTime=True&loc=UTC [log] level = "info" # debug / info / warn / error format = "text" # text / json [policy] default_ttl = "2160h" # 新账号默认有效期 90 天(可被管理员创建/延期时覆盖) recycle_period = "720h" # 到期后回收期 30 天,期内可延期恢复 audit_retention = "720h" # 审计保留 30 天,保留前先归档 otp_ttl = "10m" # OTP 验证码有效期 otp_cooldown = "60s" # OTP 发送冷却 [smtp] host = "" # 留空则禁用邮件(OTP 仍可用 CLI 通道获取) port = 587 username = "" password = "" from = "usernode@example.com" [system] sudo = false # 开发环境 false = dry-run(只打印不执行);生产 true 经 sudo -n 执行 user_prefix = "ext_" # 外部用户系统账号统一前缀 group = "external" # 外部用户统一组 shell = "/bin/sh" # 默认 shell home_base = "/home" # 家目录基路径 authorized_keys_dir = ".ssh" # authorized_keys 所在目录名