Render是一款卓越的云平台(Cloud Platform),专注于简化应用程序的部署和管理,帮助开发人员高效地构建和扩展应用程序。Render在容器化部署、定价透明性、性能和可靠性、监控和日志功能等方面具备一些显著的优势。Render相对于其他云容器平台的优势特性包括:
- 容器化部署:Render专注于容器化部署,通过Docker镜像来构建和管理应用程序。这使得在Render上部署应用程序更加便捷和灵活,可以轻松实现应用程序的可移植性和一致性,而其他平台在容器化方面的支持相对可能较弱。
- 透明定价:Render无需信用卡也可注册,定价模型相对简单透明,根据实际使用情况按量计费,并且提供了免费层级的Individual规格服务,服务内容包括静态站点、HTTPS、PostgreSQL和Redis。
- 高性能和可靠性:Render提供自动伸缩和高可用性功能,保证应用程序始终具备高性能和稳定性。它具有出色的性能指标和稳定的服务,能够应对高并发和大流量的应用场景。
- 支持多种编程语言和框架:Render广泛支持多种编程语言和框架,技术栈支持非常全面,包括常见的Python、Node.js、Go、Ruby等,以及主流的Web框架。这使开发人员能够在一个地方部署和管理不同技术栈的应用程序。
- 强大的监控和日志功能:Render内置了强大的监控和日志功能,可以实时监控应用程序的性能指标,并提供丰富的日志记录。这方面的支持能够帮助开发人员更好地了解应用程序的运行情况和问题排查。
官方列举了和Heroku的『对比』,在用户关注的价格等方面,Render均具有显著的优势。Render为免费层级计划提供了750小时的实例运行时间、100GB流量、500分钟构建时间,支持docker部署,即使是付费层级订阅,相比Heroku也可降低至少70%的成本。
1.Render应用部署的一般步骤
在Render上部署应用程序是一项简单而愉悦的任务,无需fork Github项目。通过Docker在Render上部署应用程序的大致步骤如下:
- 注册账户:在Render官方网站上注册一个账户,以便获得全面的开发人员体验。
- 创建服务:通过Render的直观界面,轻松创建一个新的服务。你可以选择你的项目源代码的存储库,并指定所需的环境参数。
- 配置部署方式:配置Render以了解你的应用是用Docker容器构建的。你可以指定用于构建和运行容器的Dockerfile路径,并选择所需的端口和启动命令。
- 构建镜像:Render将自动构建和推送应用程序的Docker镜像。你可以在Render的仪表板上跟踪构建进度,并查看构建日志。
- 部署应用:一旦构建成功,Render将自动部署你的应用程序。它将为你的应用程序分配一个唯一的URL,并在后台为其提供伸缩性和可靠性。
通过这些简单的步骤就可以快捷地将应用程序部署在Render上,享受它提供的许多优势,包括自动伸缩、高可用性、内置监控和日志功能,以及简化的部署流程。Render 的简洁性和可靠性使其成为用户的理想选择,而通过采用Docker部署应用程序,可以轻松地实现跨平台的可移植性和一致性。
2.Render上部署、运行Librechat容器
注册、登录Render后,可见Render支持创建的云端应用非常丰富,包括静态站点、Web服务等。我们的目标是部署LibreChat,选择『Web Services』。
选择从Github导入并构建、部署『Build and deploy from a Git respository』,点击『Next』。
这里无需登录github,仅需提交LibreChat开源项目官方仓库(https://github.com/danny-avila/LibreChat)即可,点击『Continue』。
之后的配置页面是重点,需要填写Web service名称、选择数据中心位置、添加环境变量。其中数据中心亚太地区有新加坡可选,需要添加的环境变量名称及值见下表。
变量名 | 值 |
ALLOW_REGISTRATION | TRUE |
ANTHROPIC_API_KEY | user_provided |
BINGAI_TOKEN | user_provided |
CHATGPT_TOKEN | user_provided |
CREDS_IV | e2341419ec3dd3d19b13a1a87fafcbfb |
CREDS_KEY | f34be427ebb29de8d88c189c71546019685ed8b241d8f2ed00c3df97ad2566f0 |
HOST | 0.0.0.0 |
JWT_REFRESH_SECRET | secret |
JWT_SECRET | secret |
OPENAI_API_KEY | user_provided |
GOOGLE_KEY | user_provided |
PORT | 3080 |
SESSION_EXPIRY | (1000 * 60 * 60 * 24) * 7 |
DOMAIN_CLIENT | xxx.onrender.com |
DOMAIN_SERVER | xxx.onrender.com |
MONGO_URI | mongodb+srv://USERNAME:<PASSWORD>@DBNAME.rpgjjk2.mongodb.net/?retryWrites=true&w=majority |
CREDS_IV、CREDS_KEY、JWT_SECRET、JWT_REFRESH_SECRET等4项变量的值可通过运行作者发布于Replit的『工具』获取。
注意需要运行两次,第一次运行填入CREDS_IV、CREDS_KEY、JWT_SECRET的值、第二次运行填入JWT_REFRESH_SECRET的值。
DOMAIN_CLIENT、DOMAIN_SERVER即为页面左上角显示的web服务域名xxx.onrender.com,MONGO_URI为云端MongoDB数据库的连接URI,URI应拷贝、粘贴MongoDB Atlas中获取的内容而非本文表格中的内容,再将<PASSWORD>替换为mongdb的user密码。这很重要!因为URI中mongodb.net之前的子域名前缀针对每个用户、每个数据库都是不同的,填写错误会导致构建成功但部署失败。
环境变量添加、修改完成后,点击下方的『Save Changes』保存环境变量后,点开『Manual Deploy』列表选择『Deploy lastest commit』开始部署。
构建、部署完成后,将显示“Your service is live ?”,同时上方也会提示绿色的live标识。这时我们就可以访问https://xxx.onrender.com(xxx默认即为服务名称)了。
3.访问LibreChat实例
Web Sevice处于live状态后,就可以通过Render的域名访问LibreChat服务了。LibreChat界面非常简洁,支持多用户和会话隔离,无Token计数计费等商用功能反而降低了被滥用的可能,非常适合个人或小型组织自用。
Free计划部署的服务在非激活状态下会自动进入休眠,为避免滥用,本文不描述任何状态保持的方法和内容,非个人用户建议订阅付费层级服务。
文章评论