最近Chatgpt十分的火爆,但是官方的仍然受地域,上网环境等限制。既然OpenAI官方提供了API接口,那么我们何不将其集成到自己的网页上,自己做一个类Chatgpt的前端呢?
在github上搜寻一圈后,我将目光锁定在这个仓库,https://github.com/Chanzhaoyu/chatgpt-web,那我们就开始把这个项目部署到自己的主机和域名上吧!
准备工作
一台VPS,腾讯云,阿里云,国外的云都可以,系统推荐Ubuntu 20.04
一个域名,腾讯云,阿里云,国外的云都可以,服务器在国内的云上的话域名需要备案
这里就不手把手教大家怎么注册VPS和域名了
部署个人Web版ChatGPT
首先通过任意SSH客户端登录你的VPS,sudo su切换到root
sudo su在防火墙放行3002端口,如果云上控制台有其他防火墙也请一并放行
ufw allow 3002安装一下Docker,Docker-compose和Nginx
apt install docker.io
sudo curl -L "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
apt install ngnix在任意位置创建一个目录,然后创建一个文件叫docker-compose.yml
mkdir chat-web
nano docker-compose.yml将以下代码复制到docker-compose.yml中
version: '3'
services:
app:
image: chenzhaoyu94/chatgpt-web:main
ports:
- 3002:3002
environment:
OPENAI_API_KEY: [你自己的api key]在chat-web的目录中,将docker拉起
docker-compose up -d随后,在浏览器访问一下你的主机IP:3002,没问题就OK了
我们测试一下

域名配置反代
当然,大家肯定不想以ip+端口的形式来访问自己的网站,那么接下来就要配置反向代理,例如,访问chat.abc.com的时候实际访问的是IP:3002
到自己的域名托管云上,配置一条A记录,将chat.你的域名解析到你VPS的ip
然后去配置nginx,在你的云主机里到nginx的配置目录,创建一个conf文件
cd /etc/nginx/conf.d
nano gpt.conf复制以下代码到gpt.conf中
server {
listen 80;
listen 443 ssl http2; #没有证书的话去掉这行
server_name chat.xiwei1993.tk;
ssl_certificate /etc/letsencrypt/live/xiwei1993.tk/fullchain.pem; #没有证书的话去掉这行
ssl_certificate_key /etc/letsencrypt/live/xiwei1993.tk/privkey.pem; #没有证书的话去掉这行
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #没有证书的话去掉这行
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; #没有证书的话去掉这行
ssl_prefer_server_ciphers on; #没有证书的话去掉这行
ssl_session_cache shared:SSL:10m; #没有证书的话去掉这行
ssl_session_timeout 10m; #没有证书的话去掉这行
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
location / {
proxy_pass http://0.0.0.0:3002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}随后重启nginx
nginx -s reload这样,就可以通过你的域名访问了

目前需要注意的
目前,这个项目并没有账号管理系统,也就是,任何人只要能访问到你的网页,就能用,那么,使用的就是你自己的额度,免费的18美金很容易被用完(可以自己去nginx里设置一些访问权限)
其次,这个项目只有前端,所有的问答记录保存在浏览器的localstorage里,不同电脑,不同浏览器都是不通的对话,记录没法共享(会后端数据库的可以自行实现)