拥有域名和服务器前提下,利用OpenAI API部署套壳Next Web。
准备工作
1.拥有一台服务器,例如1.2.3.4,系统为CentOS 8 Stream x64。
2.拥有一个域名,例如a.com,需要配置DNS和TLS。
不清楚申请步骤的话,可以参考另一篇文章: Apache+Flask在云服务器搭建个人网站
一、配置环境
1.更新软件列表
sudo yum makecache
sudo yum update
sudo reboot
2.安装Docker并启动
# 彻底清除podman和buildah
sudo yum erase podman buildah
# 卸载旧版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加 Docker 官方存储库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker CE
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动Docker
sudo systemctl start docker
3.从Docker Hub拉取Next Web镜像并运行
docker pull yidadaa/chatgpt-next-web
docker run -d -p 127.0.0.1:3000:3000 -e OPENAI_API_KEY=key -e CODE=password yidadaa/chatgpt-next-web
其中OPENAI_API_KEY为OpenAI的API Key,CODE为访问密码。
二、配置Apache
1.配置防火墙规则
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
2.安装apache
sudo yum install httpd
3.使用 Let’s Encrypt 获取 SSL 证书
- 创建Apache配置文件用于验证域名
sudo vim /etc/httpd/conf.d/next-web.conf
- 填入以下内容
<VirtualHost *:80> ServerName a.com </VirtualHost>
- 启动httpd
sudo systemctl start httpd
- 获取证书
sudo yum install epel-release mod_ssl certbot python3-certbot-apache sudo certbot --apache -d a.com -d www.a.com
4.配置Apache反向代理
-
修改配置文件
vim /etc/httpd/conf.d/next-web.conf
-
修改为以下内容
<VirtualHost *:80> ServerName a.com ServerAlias www.a.com Redirect permanent / https://a.com/ </VirtualHost> <VirtualHost *:443> ServerName a.com ServerAlias www.a.com SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCertificateFile /etc/letsencrypt/live/a.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/a.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/ ErrorLog /var/log/httpd/ssl_reverse_proxy_error_log CustomLog /var/log/httpd/ssl_reverse_proxy_access_log combined </VirtualHost>
-
重启httpd
sudo systemctl restart httpd
三、访问Next Web
1.浏览器输入https://www.a.com或者https://a.com即可访问Next Web
2.输入Docker部署时设置的密码使用默认的API key,也可以在设置中添加新的API key来绕过访问密码。
3.功能正常使用