免费微软云服务器搭建一个免翻墙的chatgpt站点

# 免费微软云服务器搭建一个免翻墙的chatgpt站点

# 前提条件

  1. 注册微软帐号(直接在官网注册)
  2. 微软云服务器的美国节点云服务器
  3. 域名,最好是 com后缀的
  4. chatgpt账号
  5. chatgpt的API

上两篇文章我们已经有了,微软云的美国服务器和域名,本篇文章教大家免费微软云服务器搭建一个免翻墙的chatgpt站点。

# 获取OpenAI API 密钥

OpenAi Keys 申请:https://beta.openai.com/account/api-keys

image-20230525152738913

在这里,单击“创建新密钥”并复制 API 密钥。请注意,您以后无法复制或查看整个 API 密钥。因此强烈建议立即将 API 密钥复制并粘贴到记事本文件中。

另外,不要公开分享或展示 API 密钥。这是一个私钥,仅用于访问您的帐户。您还可以删除 API 密钥并创建多个私钥(最多五个)。

5美元 ,有效期:3个月

# 远程连接云服务器

# 安装docker

#CentOS 7、Debian、Ubuntu

$ sudo su root
# curl -sSL https://get.docker.com/ | sh

# systemctl start docker
# systemctl enable docker.service
1
2
3
4
5
6
7

# 启动docker

开源项目:https://github.com/Chanzhaoyu/chatgpt-web

开源代理:https://github.com/geekr-dev/openai-proxy

# 使用OpenAI API KEY

这里要将OPENAI_API_KEY换成你的。

# docker run -itd --name chatgpt-web \
--restart always \
-p 3002:3002 \
--env OPENAI_API_KEY=<chatgpt-api-key> \
chenzhaoyu94/chatgpt-web
1
2
3
4
5

# 使用 OpenAI的 OPENAI_ACCESS_TOKEN(免费)

浏览器访问: https://chat.openai.com/api/auth/session

如图复制 "accessToken":"这里是你的accessToken" ,后面的引号内的所有字符。

会有过期时间,通常是1个月,一个月之后要更换accessToken。

image-20230725142907015

docker run -itd --name chatgpt-web \
--restart always \
-p 3002:3002 \
--env OPENAI_ACCESS_TOKEN='替换成你的accessToken'  chenzhaoyu94/chatgpt-web
1
2
3
4

# 配置nginx

配置nginx
# vim /etc/nginx/conf.d/chat.chuanqu.ltd.conf
按键盘的 'a' 将下面的配置填写
server {
        listen       80;
        server_name  chat.chuanqu.ltd;
        #root /path/;
        access_log /dev/null;
        error_log /dev/null;

        location / {
                #配置nginx密码
				#auth_basic "Please input password"; #这里是验证时的提示信息
                #auth_basic_user_file /etc/nginx/conf.d/htpasswd; # 密码的路径

                index index.php index.html;
                proxy_pass      http://127.0.0.1:3002;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }
}

按键盘的 ':wq' 保存退出

查看配置是否正确:
# nginx -t 

重启nginx服务:
# systemctl restart nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# 域名解析

image-20230525153649693

# 访问

image-20230525153730548

# ubuntu 配置nginx验证密码(非必须)

如果没有验证,任何人只要知道你的地址就可以使用

# apt-get install apache2-utils

# htpasswd -c /etc/nginx/conf.d/htpasswd admin
New password:   (输入你的密码)
Re-type new password: (重复输入你的密码)
Adding password for user admin
# cat /etc/nginx/conf.d/htpasswd

#在nginx配置下新增下面两行
auth_basic "Please input password"; #这里是验证时的提示信息
auth_basic_user_file /etc/nginx/conf.d/htpasswd; # 密码的路径


# nginx -t
# systemctl restart nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

再次访问则需要输入密码

# 更新密钥

# 更新 OPENAI_ACCESS_TOKEN

# docker rm -f chatgpt-web

# OPENAI_ACCESS_TOKEN='网页获取获取到的KEY' # https://chat.openai.com/api/auth/session

# docker run -itd --name chatgpt-web --restart always -p 3002:3002 --env OPENAI_ACCESS_TOKEN="${OPENAI_ACCESS_TOKEN}"  chenzhaoyu94/chatgpt-web
1
2
3
4
5

chatgpt的accessToken有效期是多久? 30天

# 更新OPENAI_API_KEY



# docker rm -f chatgpt-web

https://platform.openai.com/account/api-keys ,上面页面获得的 OPENAI_API_KEY

# OPENAI_API_KEY="获得的密钥"

# docker run -itd --name chatgpt-web --restart always -p 3002:3002 --env OPENAI_API_KEY="${OPENAI_API_KEY}" chenzhaoyu94/chatgpt-web
1
2
3
4
5
6
7
8
9

# 2023-11-22更新

image-20231122155658720

ChatGPT error 429: {"detail":"It is recommended to upgrade to the latest PandoraNext: https://github.com/pandora-next/deploy"}
1

# 获取 JWT Token

将获取到的JWT Token内容写进同目录的license.jwt (opens new window)文件中。

https://github.com/pandora-next/deploy#%E5%85%B3%E4%BA%8E-licensejwt%E6%96%87%E4%BB%B6

image-20231122160140192

image-20231122160221477

在需要授权的服务器上,执行以下命令获取授权:
# curl -fLO "https://dash.pandoranext.com/data/XXXXX/license.jwt"
# cat license.jwt
1
2
3

image-20231122160417171

# 执行docker

$ docker pull pengzhile/pandora-next
$ PANDORA_NEXT_LICENSE=`cat license.jwt`
$ echo $PANDORA_NEXT_LICENSE
$ docker run -d --restart always --name PandoraNext --net=bridge -p 8181:8181 \
             -e PANDORA_NEXT_LICENSE="$PANDORA_NEXT_LICENSE" pengzhile/pandora-next


容器内默认监听8181端口,映射宿主机的8181端口,可自行修改。
你可以映射目录到容器内的/data目录,config.json、tokens.json和license.jwt放在其中。
自行使用真实的JWT Token替换命令中的<JWT Token>,没有<和>,不要搞错。

$ docker ps
CONTAINER ID   IMAGE                      COMMAND                  CREATED         STATUS         PORTS                                       NAMES
d72ef7e4986d   pengzhile/pandora-next     "/opt/app/entrypoint…"   5 seconds ago   Up 2 seconds   0.0.0.0:8181->8181/tcp, :::8181->8181/tcp   PandoraNext
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 配置nginx

server {
        listen       80;
        server_name  chat.xgss.net;
        #root /path/;
        access_log /dev/null;
        error_log /dev/null;

        location / {
                #配置nginx密码
                auth_basic "Please input password"; #这里是验证时的提示信息
                auth_basic_user_file /etc/nginx/conf.d/htpasswd; # 密码的路径

                index index.php index.html;
                proxy_pass      http://127.0.0.1:8181;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 显示页面

image-20231122161116937