songquanpeng / one-api

OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用. OpenAI key management & redistribution system, using a single API for all LLMs, and features an English UI.

Home Page:https://openai.justsong.cn/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

宝塔一键部署教程

garyvalue opened this issue · comments

宝塔一键部署one-api
首先在应用商店安装Docker管理器并添加一个站点
在Docker管理器导入镜像
photo_2023-06-17_18-32-19
创建容器
photo_2023-06-17_18-32-24
设置反向代理
2023-06-17_183426
反向代理的配置 根据基于 Docker 进行部署

宝塔使用 docke r管理器添加 redis 环境变量时不能添加额外参数 --network="host",没有开放宿主机端口,导致报错:[dial tcp [::1]:6379: connect: connection refused]。

解决办法是命令执行:docker run --name one-api -d --restart always -e REDIS_CONN_STRING=redis://default@localhost:6379 --network="host" -p 3000:3000 -v /home/ubuntu/data/one-api:/data justsong/one-api

您好,请教一下,我怎么让这个容器使用宿主机的mysql数据库呢?我使用172.17.0.1,并且允许了172.17段IP访问mysql,还是不可以,拒绝连接

commented

您好,请教一下,我怎么让这个容器使用宿主机的mysql数据库呢?我使用172.17.0.1,并且允许了172.17段IP访问mysql,还是不可以,拒绝连接

启动的时候指定环境变量
SQL_DSN=帐号:密码@tcp(宿主机IP:宿主机MySQL端口)/数据库

您好,请教一下,我怎么让这个容器使用宿主机的mysql数据库呢?我使用172.17.0.1,并且允许了172.17段IP访问mysql,还是不可以,拒绝连接

启动的时候指定环境变量 SQL_DSN=帐号:密码@tcp(宿主机IP:宿主机MySQL端口)/数据库

这样是不行的,会报错
2023/06/21 12:48:11 �[35m/build/model/main.go:45
�[0m�[31m[error] �[0mfailed to initialize database, got error Error 1045: Access denied for user 'mysql'@'111...*' (using password: YES)
我已经问gpt很久了,一直没解决,使用docker-compose创建network也不可行

commented

您好,请教一下,我怎么让这个容器使用宿主机的mysql数据库呢?我使用172.17.0.1,并且允许了172.17段IP访问mysql,还是不可以,拒绝连接

启动的时候指定环境变量 SQL_DSN=帐号:密码@tcp(宿主机IP:宿主机MySQL端口)/数据库

这样是不行的,会报错 2023/06/21 12:48:11 �[35m/build/model/main.go:45 �[0m�[31m[error] �[0mfailed to initialize database, got error Error 1045: Access denied for user 'mysql'@'111...*' (using password: YES) 我已经问gpt很久了,一直没解决,使用docker-compose创建network也不可行

先确定你在 docker 内能够 mysql -h xxx -P xxx -u xxx -p 能连上数据库再运行吧

Access denied

看上去像是没有权限,或者密码写错了?

Access denied

看上去像是没有权限,或者密码写错了?

哈哈不知道,我放弃啦,感谢大佬开发的项目

Access denied

看上去像是没有权限,或者密码写错了?

哈哈不知道,我放弃啦,感谢大佬开发的项目

是你的MySQL没设置允许IP访问,将IP限制改成%

我也遇到和你一样的问题 折腾了好久 不过我现在已经解决了
有一个解决方案就是:你需要开启远程服务器 用远程服务器的IP去连接 并且要给
image

GPT4回答如下
这个错误信息表明你的应用程序试图通过 TCP 连接到本地主机(127.0.0.1)的 3306 端口,但是没有任何服务在那个端口上监听,所以连接被拒绝了。如果你正在尝试连接到你的 MySQL 数据库,那么可能的问题是你的 MySQL 数据库服务没有运行,或者它没有在预期的端口上监听。

当你在 Docker 中运行一个容器时,容器与主机机器具有独立的网络环境。这就是为什么你不能使用 localhost(或 127.0.0.1)从 Docker 容器连接到你的主机机器。

要解决这个问题,你需要找出你的主机机器的 IP 地址,并且你的 MySQL 数据库必须配置为允许来自该 IP 地址的连接。

具体步骤如下:

查找你的主机 IP 地址。在 Linux 或 Mac 中,你可以通过运行 ipconfig getifaddr en0(对于有线连接)或 ipconfig getifaddr en1(对于无线连接)来获取。在 Windows 中,你可以在命令提示符下运行 ipconfig 并查找“IPv4 地址”。

在你的应用程序中,替换所有试图连接到 localhost 或 127.0.0.1 的数据库连接字符串,用你在上一步中找到的 IP 地址替换。

确保你的 MySQL 数据库配置为接受来自你的 Docker 容器的连接。这可能涉及到编辑 my.cnf 文件(通常位于 /etc/mysql/my.cnf),并确保 bind-address 设置为你的主机 IP 地址,而不是 127.0.0.1。

重启你的 MySQL 服务,然后再试一次你的应用程序。

注意,如果你的 Docker 容器和 MySQL 数据库都在同一个 Docker 网络中运行,你可以简单地使用 Docker 服务名称代替 IP 地址进行连接。

如果你仍然遇到问题,可能需要检查你的 MySQL 用户是否有权限从你的 Docker 容器的 IP 地址连接,或者你的防火墙是否允许在数据库端口上的入站连接。

2023/08/17 06:13:59 /build/model/cache.go:25 ERROR: operator does not exist: character (SQLSTATE 42883) [0.861ms] [rows:0] SELECT * FROM "tokens" WHEREkey` = 'JlfUStsg9TrVTRR8055cD614FaF3454d9d7a54F1365c8334' ORDER BY "tokens"."id" LIMIT 1
[GIN] 2023/08/17 - 06:13:59 | 401 | 1.051588ms | 172.17.0.16 | POST "/v1/chat/completions"

operator does not exit 如何處理?

commented

各位大佬,我想问下用宝塔一键部署的怎么迁移数据啊

image

按照教程部署,运行结果是502
检查了服务器安全策略,把端口分开了

然后 如果部署后访问出现空白页面,详见 https://github.com/songquanpeng/one-api/issues/97。

image

我的配置文件里面,没有跟97教程里面一样的内容

几种部署方法,没有一个顺利的,真是劝退贴。

几种部署方法,没有一个顺利的,真是劝退贴。

可以来群里问,总有人愿意帮你解答

几种部署方法,没有一个顺利的,真是劝退贴。

我已经部署成功了,使用ssh工具,用docker run 一键部署,注意端口要根据实际情况改下,如果要使用域名打开的话,在宝塔新建网站,然后添加反向代理,使用localhost:端口号,然后再在ssl里面添加一个证书

几种部署方法,没有一个顺利的,真是劝退贴。

可以来群里问,总有人愿意帮你解答

群号多少,没看到哪里有写群号呀?

几种部署方法,没有一个顺利的,真是劝退贴。

可以来群里问,总有人愿意帮你解答

群号多少,没看到哪里有写群号呀?

828520184

几种部署方法,没有一个顺利的,真是劝退贴。

可以来群里问,总有人愿意帮你解答

群号多少,没看到哪里有写群号呀?

828520184

搜到了,新框架的扣扣还不太会用...

已经部署成功,注意 在设置反向代理时要用建立容器时分配的ip,不一定是127.0.0.1
微信截图_20230914234735

我在用宝塔面板创建docker后希望配置反向代理。当前我已经配置docker运行地址172.17.0.2,所以我配置了172.17.0.2:3000 和$host,提交后出现:ERROR: None
nginx: [emerg] "location" directive is not allowed here in /www/server/panel/vhost/nginx/43.140.195.209.conf:82
nginx: configuration file /www/server/nginx/conf/nginx.conf test failed。对这个问题,我用gpt4查了半天服务器的配置文件等,也没有发现错误点。

image

反代的地址这么设置。同时,你要把自己服务器那边安全设置,把对应的端口放通。

请问宝塔部署的项目该如何更新

替换所有试图连接

root:123456@tcp(localhost:3306) -->root:123456@tcp(192.168.1.x:3306)
要换成ip主机的,而不是localhost或者127.0.0.1
并且oneapi,这个数据库要自己建
重新拉下或者重启下容器就好了

请问一下,本地部署整个都是白色页面如何解决啊?

请问宝塔部署的项目该如何更新

同问,咋更新呢。

docker镜像的更新,就是删掉旧镜像和容器,重新部署新镜像。mysql数据库是独立的,配置都还在,不受影响

请问宝塔部署的项目该如何更新

docker镜像的更新,就是删掉旧镜像和容器,重新部署新镜像。mysql数据库是独立的,配置都还在,不受影响

one-api 部署成功, 反向代理也设置成功, 用 http://域名:3000 可以登录后台, 用 https://域名:3000 无法登录后台, 在 ChatGpt-next-web项目上 无论输入 http://域名:3000 或是 https://域名:3000 , 再加令牌都是得不到opeanai的回复数据, 请大佬指导.
截屏2024-01-06 14 37 50

你们把服务器丢在哪里?海外代理一层丢国内?还是?

image
同样502报错,不知道要改哪里

image
这个是什么问题,重试了好多遍