完全解决something went wrong 这个恶心人的报错,我尊贵的GPT4用户怎么能受这委屈!
docker
nginx proxy manager
一台可以访问gpt的服务器,我用的日本,warp ipv6解锁的GPT(可选,也可使用在线部署平台vercel)
域名解析到服务器上
openai账号
了解linux命令行基础操作
参考的勇哥ykk的脚本
选择1安装warp-go
然后选择2. 安装/切换WARP单栈IPV6
是个服务器应该都有趴!我的linux系统是Ubuntu,以下为Ubuntu系统演示,不同的linux版本命令会有所不同自行谷歌
sudo apt-get remove docker \
docker-engine \
docker.io
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
sudo apt-get install docker.io
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
cd /root
mkdir npm
cd npm
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
记得开启服务器硬件防火墙(服务器商界面的firewall)与服务器本身的软件防火墙,Ubuntu为ufw
npm网页地址即你的服务器ip:81
一开始会让你设置用户名和密码之类的
默认用户名为 [email protected]
默认密码 changeme
更多npm细节可以看这篇文章,我的linux基础很多都是实战他的教程学会的
这里我们演示的是,把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的六种网络模式我学过都忘了,还有我是文科生
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限制是否成功了,
十分重要 查看 Tauri 提供的依赖指南
把依赖指南的东西全部安装然后重启
npm install -g pake-cli
pake url
然后他会指引你起名字的,或者diy图标,pake的教程文档真的非常非常清楚,很nice!
不多赘述。
两个字,优雅!
任何不懂的欢迎在Twitter私信我,喂饭教程第一次写,肯定有很多漏洞请见谅,但这真的是我实践得出的成果,感谢你的阅读。