Git Product home page Git Product logo

pandora-deploy's Introduction

PandoraNext

简单介绍

  • Pandora Cloud + Pandora Server + Shared Chat = PandoraNext
  • 支持GPTs,最新UI。
  • 支持多种登录方式:(相当于Pandora Cloud)
    • 账号/密码
    • Access Token
    • Session Token
    • Refresh Token
    • Share Token
  • 可内置tokens(可使用上述所有Token),支持设置密码。(相当于Pandora Server)
  • 可配置共享的tokens,会有一个功能等同chat-shared3.zhile.io的共享站。
  • 为全代理模式,你的用户只需要跟你的部署网络能通即可。
  • 还有疑问,那就进Telegram群让大家围观围观:@ja_netfilter_group

手动部署

  • Releases中下载对应操作系统和架构的包。
  • 解压后修改同目录中的config.json至你需要的参数。
  • 将获取到的JWT Token内容写进同目录的license.jwt文件中。
  • 启动PandoraNextPandoraNext.exe即可。

Docker 部署

$ docker pull pengzhile/pandora-next
$ docker run -d --restart always --name PandoraNext --net=bridge -p 8181:8181 \
             -e PANDORA_NEXT_LICENSE="<JWT Token>" pengzhile/pandora-next
  • 容器内默认监听8181端口,映射宿主机的8181端口,可自行修改。
  • 你可以映射目录到容器内的/data目录,config.jsontokens.jsonlicense.jwt放在其中。
  • 自行使用真实的JWT Token替换命令中的<JWT Token>,没有<>,不要搞错。

Docker Compose 模版

version: '3'
services:
  pandora-next:
    image: pengzhile/pandora-next
    container_name: PandoraNext
    network_mode: bridge
    restart: always
    ports:
      - "8181:8181"
    environment:
      - PANDORA_NEXT_LICENSE=<JWT Token>
  • 对照上述Docker 部署的内容自行修改。

  • 如果你映射了/data目录,要提供config.json,同样tokens.json也放在这里。

Nginx 配置

server {
	listen 443 ssl http2;
	server_name chat.zhile.io;
	
	charset utf-8;
	
	ssl_certificate      certs/chat.zhile.io.crt;
	ssl_certificate_key  certs/chat.zhile.io.key;

	...省略若干其他配置...
	
	location / {
		proxy_http_version 	1.1;
		proxy_pass 		http://127.0.0.1:8181/;
		proxy_set_header	Connection		"";
		proxy_set_header   	Host			$http_host;
		proxy_set_header 	X-Forwarded-Proto 	$scheme;
		proxy_set_header   	X-Real-IP          	$remote_addr;
		proxy_set_header   	X-Forwarded-For    	$proxy_add_x_forwarded_for;
		
		proxy_buffering off;
		proxy_cache off;
		
		send_timeout 600;
		proxy_connect_timeout 600;
		proxy_send_timeout 600;
		proxy_read_timeout 600;
	}

	...省略若干其他配置...
}
  • Nginx建议开启http2
  • 以上仅为推荐配置,可根据具体情况进行改动。
  • 建议开启ssl也即https,否则浏览器限制将无法复制网页内容。

config 配置

  • 以下是一个示例config.json文件
{
  "bind": "127.0.0.1:8181",
  "timeout": 600,
  "proxy_url": "",
  "public_share": false,
  "site_password": "",
  "setup_password": "",
  "server_tokens": true,
  "server_mode": "web",
  "whitelist": null
}
  • bind指定绑定IP和端口,在docker内,IP只能用0.0.0.0,否则映射不出来。
  • timeout是请求的超时时间,单位为
  • proxy_url指定部署服务流量走代理,如:http://127.0.0.1:8888socks5://127.0.0.1:7980
  • public_share对于GPT中创建的对话分享,是否需要登录才能查看。为true则无需登录即可查看。
  • site_password设置整站密码,需要先输入这个密码,正确才能进行后续步骤。充分保障私密性。
  • setup_password定义一个设置密码,用于调用/setup/开头的设置接口,为空则不可调用。
  • server_tokens设置是否在响应头中显示版本号,true显示,false则不显示。
  • server_mode默认为web模式,新增proxy模式,可以将你部署的服务当作一个ChatGPT接口反代使用。会话额度消耗为4倍,无并发限制。
  • whitelist邮箱数组指定哪些用户可以登录使用,用户名/密码登录受限制,各种Token登录受限。内置tokens不受限。
  • whitelistnull则不限制,为空数组[]则限制所有账号,同样内置tokens不受限。

tokens 配置

  • 以下是一个示例tokens.json文件
{
  "test-1": {
    "token": "access token / session token / refresh token",
    "shared": true,
    "show_user_info": false
  },
  "test-2": {
    "token": "access token / session token / refresh token",
    "shared": true,
    "show_user_info": true,
    "plus": true
  },
  "test2": {
    "token": "access token / session token / refresh token / share token",
    "password": "12345"
  }
}
  • token支持示例文件中所写的所有类型。session tokenrefresh token可自动刷新。
  • 每个key被称为token key,可在登录框作用户名输入。如上:test-1test-2等。
  • 如果设置了password则输入完token key进入输入密码页面输入匹配。
  • 如果设置sharedtrue,则这个账号会出现在/shared.html中,登录页面会出现它的链接。
  • 如果设置sharedtrue,则这个账号不能再在用户名登录框进行登录。
  • /shared.html中的账号和共享站功能相同,可以自行设置隔离密码进行会话隔离。
  • plus用来标识/shared.html上账号是否有金光,没有其他作用。
  • show_user_info表示/shared.html共享时是否显示账号邮箱信息,GPTs建议开启。

设置接口

  • 必须先在config.json中设置setup_password为非空!
  • 热更新configtokenslicense
$ curl -H "Authorization: Bearer <setup_password>" -X POST "<Base URL>/setup/reload"

关于 license.jwt文件

  • 在这里获取:https://dash.pandoranext.com
  • 没有固定IP的情况,IP变动后在上述服务重新拉取授权即可。
  • PHP是世界上最好的编程语言。

贡献者们

感谢所有让这个项目变得更好的贡献者们!

Contributors

Star历史

Star History Chart

pandora-deploy's People

Contributors

echo66677 avatar wozulong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.