Render上部署LibreChat 轻松实现一站式、多租户AI平台

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上部署应用程序的大致步骤如下:

  1. 注册账户:在Render官方网站上注册一个账户,以便获得全面的开发人员体验。
  2. 创建服务:通过Render的直观界面,轻松创建一个新的服务。你可以选择你的项目源代码的存储库,并指定所需的环境参数。
  3. 配置部署方式:配置Render以了解你的应用是用Docker容器构建的。你可以指定用于构建和运行容器的Dockerfile路径,并选择所需的端口和启动命令。
  4. 构建镜像:Render将自动构建和推送应用程序的Docker镜像。你可以在Render的仪表板上跟踪构建进度,并查看构建日志。
  5. 部署应用:一旦构建成功,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_REGISTRATIONTRUE
ANTHROPIC_API_KEYuser_provided
BINGAI_TOKENuser_provided
CHATGPT_TOKENuser_provided
CREDS_IVe2341419ec3dd3d19b13a1a87fafcbfb
CREDS_KEYf34be427ebb29de8d88c189c71546019685ed8b241d8f2ed00c3df97ad2566f0
HOST0.0.0.0
JWT_REFRESH_SECRETsecret
JWT_SECRETsecret
OPENAI_API_KEYuser_provided
GOOGLE_KEYuser_provided
PORT3080
SESSION_EXPIRY(1000 * 60 * 60 * 24) * 7
DOMAIN_CLIENTxxx.onrender.com
DOMAIN_SERVERxxx.onrender.com
MONGO_URImongodb+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 之前的子域名前缀针对每个用户、每个数据库都是不同的,填写错误会导致构建成功但部署失败。mongodb altas 云端数据库的创建和使用受篇幅所限,本文不做叙述,可参见个博「另文」 。

环境变量添加、修改完成后,点击下方的『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计划部署的服务在非激活状态下会自动进入休眠,为避免滥用,本文不描述任何状态保持的方法和内容,非个人用户建议订阅付费层级服务。

原文戳「这里」。更多精彩内容,关注gangkeji!

  • 11
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
建立一个线上会员平台需要考虑很多方面,包括用户认证、数据库设计、前后端交互等。以下是一个简单的Python代码框架,可以帮助你实现上述功能: 1. 用户认证 用户可以通过注册和登录来认证,可以使用 Flask 框架来实现。具体代码如下: ```python from flask import Flask, request, redirect, url_for, session from werkzeug.security import generate_password_hash, check_password_hash app = Flask(__name__) app.secret_key = 'your_secret_key' # 用户注册 @app.route('/register', methods=['GET', 'POST']) def register(): if request.method == 'POST': # 获取用户输入的用户名和密码 username = request.form['username'] password = request.form['password'] # 将密码进行哈希处理后保存到数据库中 hashed_password = generate_password_hash(password) # 保存用户信息到数据库中 # ... # 跳转到登录页面 return redirect(url_for('login')) else: # 显示注册页面 return render_template('register.html') # 用户登录 @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': # 获取用户输入的用户名和密码 username = request.form['username'] password = request.form['password'] # 从数据库中获取用户信息 user = get_user(username) if user is None: # 用户不存在 return 'Invalid username' elif not check_password_hash(user['password'], password): # 密码不正确 return 'Invalid password' else: # 用户认证成功,将用户信息保存到 session 中 session['user_id'] = user['id'] session['username'] = user['username'] # 跳转到首页 return redirect(url_for('index')) else: # 显示登录页面 return render_template('login.html') ``` 2. 数据库设计 需要设计一个数据库,保存用户信息、采购、销售、物流、管理等数据。可以使用 MySQL 或者 PostgreSQL 数据库,具体的表结构和字段可以根据实际需求进行设计。 3. 前后端交互 可以使用 Flask 框架来实现前后端交互,具体代码如下: ```python from flask import Flask, request, render_template, session, redirect, url_for app = Flask(__name__) app.secret_key = 'your_secret_key' # 首页 @app.route('/') def index(): if 'user_id' in session: # 用户已登录,显示首页 return render_template('index.html') else: # 用户未登录,跳转到登录页面 return redirect(url_for('login')) # 采购 @app.route('/purchase') def purchase(): if 'user_id' in session: # 用户已登录,显示采购页面 return render_template('purchase.html') else: # 用户未登录,跳转到登录页面 return redirect(url_for('login')) # 销售 @app.route('/sales') def sales(): if 'user_id' in session: # 用户已登录,显示销售页面 return render_template('sales.html') else: # 用户未登录,跳转到登录页面 return redirect(url_for('login')) # 物流 @app.route('/logistics') def logistics(): if 'user_id' in session: # 用户已登录,显示物流页面 return render_template('logistics.html') else: # 用户未登录,跳转到登录页面 return redirect(url_for('login')) # 管理 @app.route('/management') def management(): if 'user_id' in session: # 用户已登录,显示管理页面 return render_template('management.html') else: # 用户未登录,跳转到登录页面 return redirect(url_for('login')) # 退出登录 @app.route('/logout') def logout(): # 清除 session 中的用户信息 session.pop('user_id', None) session.pop('username', None) # 跳转到登录页面 return redirect(url_for('login')) ``` 以上是一个简单的 Python 代码框架,可以帮助你实现建立一个线上会员平台。需要根据实际需求进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值