You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在开源Discord经济机器人中隐藏敏感信息并支持Heroku部署

当然可以实现!这是开源项目处理敏感信息的标准操作,结合你的Heroku部署场景,给你两个靠谱方案:

方案一:用Heroku环境变量替代本地JSON文件(最推荐)

这是最简便也符合Heroku最佳实践的方法,步骤如下:

  • 修改代码读取环境变量:把你index.js里读取JSON文件的代码,改成读取系统环境变量。比如原来的:
    const config = require('./config.json');
    
    改成:
    const config = {
      token: process.env.DISCORD_TOKEN,
      server: process.env.DATABASE_URL
    };
    
  • 在Heroku后台配置敏感信息:登录Heroku控制台,进入你的机器人应用,切换到Settings标签页,找到Config Vars区域,点击Reveal Config Vars,然后添加两个变量:
    • 键:DISCORD_TOKEN,值:你的机器人Token
    • 键:DATABASE_URL,值:你的用户数据Server URL
  • 排除敏感文件到Git忽略列表:在仓库根目录创建或修改.gitignore文件,加入一行:
    config.json
    
    这样这个敏感文件就不会被提交到开源仓库了。
  • 添加示例配置文件(可选但友好):可以在仓库里放一个config.example.json,内容如下,给其他开发者做参考:
    {
      "token": "your_discord_token_here",
      "server": "your_database_url_here"
    }
    

方案二:用Git加密工具保护JSON文件(适合坚持保留JSON结构的场景)

如果你一定要保留config.json的结构,可以用git-crypt来加密这个文件,只有拥有密钥的人(你和Heroku)能解密:

  • 初始化Git加密:在本地仓库安装并初始化git-crypt,把config.json加入加密规则,然后加密后提交到仓库。这时候仓库里的config.json是加密状态,访客看不到真实内容。
  • 给Heroku配置解密密钥:Heroku部署时需要解密密钥,你可以把解密密钥作为环境变量添加到Heroku的Config Vars里,然后在部署脚本里加入解密命令。不过这个步骤比方案一繁琐,新手不推荐。

总结

优先选方案一,既不需要额外工具,又能完美实现“只有你和Heroku能访问敏感信息,开源仓库访客看不到”的需求,还符合云平台部署的最佳实践。

内容的提问来源于stack exchange,提问作者user14039007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:30:28