写在最前

  • 思来想去还是搭建一个本地版罢(不然总是要科学上网),刚好可以放我虚拟机里跑,本教程基于Pengzhile/pandora 项目
  • 前置要求:一台搭载了Contos7的虚拟机

安装Docker

卸载(可选)

  • 如果之前安装过旧版本的Docker,可以使用下面命令卸载
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-selinux \
    docker-engine-selinux \
    docker-engine \
    docker-ce

安装Docker

  • 首先先安装yum工具

    1
    2
    3
    yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2 --skip-broken
  • 然后更新本地镜像源

    1
    2
    3
    4
    5
    6
    7
    8
    ## 设置Docker镜像源
    yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

    yum makecache fast
  • 然后安装社区版Docker

    1
    yum install -y docker-ce

启动Docker

  • Docker应用需要用到各种端口,挨个修改防火墙设置很麻烦,所以这里建议直接关闭防火墙

    1
    2
    3
    4
    ## 关闭
    systemctl stop firewalld
    ## 禁止开机启动防火墙
    systemctl disable firewalld
  • 通过命令启动Docker

    1
    2
    3
    4
    5
    6
    7
    8
    ## 启动docker服务(只执行此操作即可)
    systemctl start docker

    ## 停止docker服务(无需执行)
    systemctl stop docker

    ## 重启docker服务(无需执行)
    systemctl restart docker
  • 然后输入命令,查看docker版本,如果可以看到版本号,则安装成功

    1
    docker -v
  • 设置开机自启动

    1
    systemctl enable docker

拉取镜像并启动容器

  1. 拉取镜像
    1
    docker pull pengzhile/pandora
  2. 启动容器,这里的9527可以换为你喜欢的端口(确保它没有被占用),由于docker已经设置为开机自启了,这里再设置 --restart=always可以保证该容器随docker启动而启动,从而实现你只需要将虚拟机开机,即可访问chatGPT了
    1
    docker run -e PANDORA_CLOUD=cloud -e PANDORA_SERVER=0.0.0.0:9527 -p 9527:9527 -d --restart=always pengzhile/pandora
  3. 查看虚拟机ip,在输出结果中,找到带有 inet 地址的行,后面的一串数字就是本机的 IP 地址,例如:192.168.101.128
    1
    ifconfig
  4. 在浏览器中输入虚拟机ip:9527,即可看到登录界面,点击最下方Continue with Access Token输入token即可登录使用,无需科学上网,定期刷新token即可
  5. 关于token的获取,如果你有正常的openAI账号,访问https://chat.openai.com/api/auth/session 可以拿到token

其他设备访问

  • 懒是第一生产力,我现在想在手机或者任何我的电子设备上访问ChatGPT,该怎么办呢?开放主机的一个端口供其他设备端口就好了(当然你的设备需要和主机在同一个局域网内)

Windows防火墙设置

  • 控制面板->系统与安全->Windows防火墙->高级设置->入站规则->新建规则
  • 协议和端口,选择TCP特定本地端口,填写一个你喜欢的端口即可,我这里还是9527
  • 然后一路Next就好了,都用默认的配置,最后的名称你可以起一个你喜欢的名称,我这里是ChatGPT

虚拟机端口转发

  • 由于虚拟机采用的是NAT联网方式,我们点击菜单->编辑->虚拟网络编辑器->更改设置,选择VMnet8网络
  • 点击NAT设置添加端口转发规则,主机端口选择我们上一步开放的9527端口,虚拟机地址填写我们Docker容器中ChatGPT的启动端口
  • 最后CMD查看本机ip,其他设备只要跟电脑在同一个局域网内,访问ip:端口即可正常使用