完全解决 something went wrong 这个恶心人的报错,我尊贵的 GPT4 用户怎么能受这委屈!
会用到#
docker
nginx proxy manager
需要#
一台可以访问 gpt 的服务器,我用的日本,warp ipv6 解锁的 GPT(可选,也可使用在线部署平台 vercel)
域名解析到服务器上
openai 账号
了解 linux 命令行基础操作
开始操作#
服务器 warp ipv6 解锁 gpt#
参考的勇哥 ykk 的脚本
选择 1 安装 warp-go
然后选择 2. 安装 / 切换 WARP 单栈 IPV6
服务器安装 docker 与 docker compose#
是个服务器应该都有趴!我的 linux 系统是 Ubuntu,以下为 Ubuntu 系统演示,不同的 linux 版本命令会有所不同自行谷歌
卸载旧版本#
sudo apt-get remove docker \
docker-engine \
docker.io
使用 APT 安装#
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
安装 docker#
sudo apt-get install docker.io
安装 docker compose#
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
安装 Nginx proxy manager#
新建一个 npm 文件夹来存储数据#
cd /root
mkdir npm
cd npm
编辑 docker-compose.yml 文件#
vim docker-compose.yml
version: "3"
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
运行容器#
docker-compose up -d
进入 npm web 面板#
记得开启服务器硬件防火墙(服务器商界面的 firewall)与服务器本身的软件防火墙,Ubuntu 为 ufw
npm 网页地址即你的服务器 ip:81
一开始会让你设置用户名和密码之类的
默认用户名为 [email protected]
默认密码 changeme
更多 npm 细节可以看这篇文章,我的 linux 基础很多都是实战他的教程学会的
安装 pandora#
这里我们演示的是,把 Accesstoken 写死在环境变量里面的方式,我很懒不想访问一次就输入一次,所以直接写死,后面会用 npm 的 access list 实现不被滥用
如何获取 accesstoken
请在 ChatGPT 官网登陆完成后,打开 F12 查看https://chat.openai.com/api/auth/session 请求返回的 accessToken
docker run \
-itd \
--name pandora2 \
--restart always \
-p 7862:7861 \
-e PANDORA_ACCESS_TOKEN=你的acesstoken \
-e PANDORA_SERVER='0.0.0.0:7861' \
pengzhile/pandora
确认防火墙开启响应端口(7861)后,先用 ip: 端口看看是否正常运行
如果不正常的话!docker logs pandora 查看一下报错信息然后问 chatgpt,一般来说不会有问题!
配置反向代理#
现在 npm 和 pandora 已经正常运行了,现在要做的就是实现域名访问,首先确保你的域名已经解析到了你的 ip
我是 dnspod 托管的,可以看到我这边已经解析好了
然后设置 npm
domain names 就是你要设置的域名名称,我建议二级域名,如果你就一个项目,那就直接用一级域名就行了。
然后这个 forward hostname/ip 不要无脑填 127.0.0.1!
因为 npm 是在 docker 容器里通过 bridge 桥接到服务器的,穿透了服务器本机的端口,所以这里要填你的 docker 的网关,来实现你的数据始终在你的服务器中传输,(我这里说的不明白,我尽力了,docker 的六种网络模式我学过都忘了,还有我是文科生
获取 docker 网关#
ip route
然后 forward port 端口 我用的 7862 因为我布置了两个,一个 gpt 普通号给朋友一起用,占用了 7861 端口,我又开了 7862 端口给我的 20 美刀一个月的尊贵的 gpt4 订阅用户用。
然后 ssl 证书这里选获取新证书,或者一部到位获取泛域名证书,自行研究
配置访问限制#
这是很重要的,关乎到你自己开小灶还是完全暴露到公网
allow 这里改成你的ip地址或者你分流的访问这个gpt的特定ip;
deny all;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
因为我在宿舍,无论怎么拨号都会给一个确定的号段的 ip,所以我就设置了仅限这个号段的 ip 区间,当然你也可以通过 npm 的 accesss lists 去限制访问的 ip,设置密码等等,我试了,我只能说,我玩不来,我还是吃 nginx 的老本直接写在配置里。
当我在宿舍时,很好的就能访问。
当我在外面时,我通过连接内网穿透我宿舍软路由的 vmess server 端口进行利用宿舍的内网环境进行访问,我是个懒狗,这样穿透内网端口很危险,被爆破的话所有内网设备就都暴露了。
你也可以设置一个单独的代理服务器进行访问,或者设置密码。
所有都设置好之后,手机流量访问一下确认一下 ip 限制是否成功了,
通过 pake 打包镜像网页#
环境配置 Windows/Linux 注意点#
-
十分重要 查看 Tauri 提供的依赖指南
-
把依赖指南的东西全部安装然后重启
安装#
npm install -g pake-cli
打包你的 gpt 网页#
pake url
然后他会指引你起名字的,或者 diy 图标,pake 的教程文档真的非常非常清楚,很 nice!
不多赘述。
大功告成!#
两个字,优雅!
任何不懂的欢迎在Twitter私信我,喂饭教程第一次写,肯定有很多漏洞请见谅,但这真的是我实践得出的成果,感谢你的阅读。