耗时一下午,我终于上线了我的 GPT 终端!(内含详细部署方案记录)

简介: 耗时一下午,我终于上线了我的 GPT 终端!(内含详细部署方案记录)

前言

大家好,我是「周三不Coding」。

想来 GPT Terminal 已经好久没更新新功能啦,想到有些朋友仅是看过 GPT Terminal 的演示 Demo,但是还没有实际上手用过。为了让大家快速用上 GPT Terminal ,我决定将其部署到服务器上,让大家尽情地 “白嫖”,而不用亲力亲为地部署!

说干就干,我用了一下午的时间,终于上线了 GPT Terminal

线上地址:gpt-web-terminal.vercel.app/#/

  • 不限次数访问。如果额度用完,请提醒我更新 API Key
  • 出现 Mixed Content 报错,请查看本篇文章对应部分解决!
  • 如果还遇到其它 Bug,麻烦请留言一下或提一下 Issue,万分感谢!

接下来,我给大家分享一下我的部署过程!

部署方案

如下是我最终采取的部署方案:

image.png

  • 前端:Vercel 网站托管服务,一键部署免运维

这绝对是一个神仙网站,如果小伙伴们不知道怎么用的话,可以去百度搜一搜学一学!超级好用!

  • 后端:通过 Docker 容器化,部署到国外云服务器,支持访问 GPT 服务

其实,一开始我准备通过微信云托管来部署后端。但是,经过了一番折腾并部署成功后,发现后端无法访问到 OpenAI 服务。在网上查找了资料后,发现并没有微信云托管相关的解决方案,于是我最后只好放弃啦~

部署记录

环境变量配置

开发环境与生产环境的后端地址、数据库地址不相同,因此需要进行区分。

  • 对于前端而言,通过在 Vercel 中配置环境变量,并修改前端代码中访问后端的地址,通过变量名的形式获取环境变量,而非硬编码形式。
    image.png
  • 对于后端而言,通过区分当前环境,得到不同的配置文件

如下代码位于 server/src/config/getConfig.js 文件中

let config;
const env = process.env.NODE_ENV ?? "local";
if (env === "local") {
  config = require("./config");
} else {
  config = require(`./config.${env}`);
}

配置 Docker

后端通过 Docker 容器化部署,如下为 Dockerfile 文件

  • 采用 node16 轻量级镜像
  • 采用 pm2 进行进程管理、性能监控等
# 使用官方 Node.js 轻量级镜像
# https://hub.docker.com/_/node
FROM node:16-slim
# 定义工作目录
WORKDIR /usr/src/app
# 将本地代码复制到工作目录内
COPY ./ ./
RUN npm install
# 安装 pm2
RUN npm install pm2 -g
# 启动服务
CMD pm2-runtime 'npm start'

通过如下命令构建镜像

docker build -t gpt-terminal-server

解决 Mixed Content 报错

前端通过 Vercel 部署,采用的是 https 协议;而后端是直接通过服务器进行部署,并未做 SSL 证书配置,仍为 http 协议。当部署后,前端访问后端时,会报错:Mixed Content。

暂时使用如下方案解决:

  1. 点击 Site settings
    image.png
  2. 将 「不安全内容」「Insecure content」从 Block 更改为 Allow
    image.png

总结

这就是部署的全部记录啦~

其实这个项目还是比较简单的,通过 VercelDocker 容器化技术,很快就可以将网站上线。

但是为什么我还用了一下午呢?因为我最后想要配置 SSL 证书,用了比较久的时间,还出了点问题,目前还在解决中,但不影响最终使用哈哈哈哈~

这就是今天的全部内容啦~

想要体验的小伙伴,可以点击这里访问该 GPT 终端!不限次数使用!

相关文章
|
人工智能 Dragonfly 开发框架
GPT-4 太贵?试试这 6 个免费且优秀的替代方案
GPT-4 太贵?试试这 6 个免费且优秀的替代方案
8302 0
GPT-4 太贵?试试这 6 个免费且优秀的替代方案
|
自然语言处理 前端开发 JavaScript
耗时一下午,我实现了 GPT Terminal,真正拥有了专属于我的 GPT 终端!
耗时一下午,我实现了 GPT Terminal,真正拥有了专属于我的 GPT 终端!
227 0
|
5月前
|
存储 SQL 数据库
Python 金融编程第二版(GPT 重译)(四)(4)
Python 金融编程第二版(GPT 重译)(四)
53 3
|
5月前
|
存储 NoSQL 索引
Python 金融编程第二版(GPT 重译)(一)(4)
Python 金融编程第二版(GPT 重译)(一)
67 2
|
5月前
|
存储 机器学习/深度学习 关系型数据库
Python 金融编程第二版(GPT 重译)(四)(5)
Python 金融编程第二版(GPT 重译)(四)
38 2
|
5月前
|
存储 SQL 数据可视化
Python 金融编程第二版(GPT 重译)(四)(1)
Python 金融编程第二版(GPT 重译)(四)
52 2
|
5月前
|
数据可视化 Python
Python 金融编程第二版(GPT 重译)(三)(4)
Python 金融编程第二版(GPT 重译)(三)
30 2
|
5月前
|
存储 算法 数据可视化
Python 金融编程第二版(GPT 重译)(一)(1)
Python 金融编程第二版(GPT 重译)(一)
113 1

热门文章

最新文章