部署使用 CHAT-NEXT-WEB 基于 Deepseek

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
简介: 本文介绍如何在阿里云轻量服务器上部署基于 `Deepseek` 的 `CHAT-NEXT-WEB` 项目。首先,准备一台 Linux 服务器并安装 Docker,确保防火墙允许特定端口访问。接着,通过阿里云容器镜像服务解决国内网络限制问题,将镜像推送到私有仓库并拉取到本地。配置并启动 `chat-next` 项目,使用 Deepseek API 进行优化。最后,安装 Nginx 和 Certbot 配置 HTTPS 访问,确保安全性和自动续签。整个过程需严格遵循官方文档,以避免因网络问题导致的安装失败。

部署使用 CHAT-NEXT-WEB 基于 Deepseek

  1. ChatGPT-Next-Web

1、准备环境

准备一台 LINUX 服务器, 安装 Docker , 本文使用阿里云的轻量服务器;
由于打算将该项目部署在域名: https://chat.louislan.com上,所以前置条件是在阿里云轻量服务器控制台防火墙管理页将端口访问限制取消。添加特定端口的访问权限,如图:

阿里云添加访问端口

2、安装Docker

由于国内运营商访问限制,我这台阿里云服务器无法通过 Docker 官方安装方式安装,故参考阿里云官方的 Dcoker 安装文档:
https://help.aliyun.com/zh/simple-application-server/use-cases/manually-deploy-docker

注:一定要参考官方的安装,不然会出现各种由于网络原因导致的安装不成功;

3、拉取镜像

如果直接通过 docker pull yidadaa/chatgpt-next-web 会提示网络不可达而导致失败,尝试过使用阿里云的镜像加速器配置或配置其他的镜像源,但均告失败。话说,Docker 限制大陆 ip 访问,还用不用了,抵制 Docker 从我做起。
最后的解决方式是使用阿里云的容器镜像服务,建立一个阿里云私有的镜像仓库,先将镜像 push 到阿里云私仓,再从阿里云私仓 pull 到本地。具体方式如下:

3.1 阿里云容器镜像服务

https://cr.console.aliyun.com/cn-chengdu/instances

阿里云容器镜像服务

先在 github 上创建一个项目,建一个文件,获取 next-web 项目的官方源;

next-web项目的官方源

创建镜像仓库
创建镜像仓库

选择代码源来自 github 创建的仓库

github创建的仓库

在仓库管理内的 构建 页新建一条构建规则,特别注意 Dockerfilename 要和刚刚在 github 建的文件名要一致
新建一条构建规则

点击 构建 ,可通过日志查看构建是否成功。 构建成功后,可参考基本信息页的信息使用:
基本信息

3.2 登录阿里云私仓
$ docker login --username=louislan registry.cn-chengdu.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码(可见下图设置)。
设置密码

3.3 从Registry中拉取镜像
$ docker pull registry.cn-chengdu.aliyuncs.com/louislan/docker_git_image:[镜像版本号]

镜像版本号见下图:
镜像版本号

使用 Docker tag 重命名为 chat-next 版本号为 latest

$ docker tag registry.cn-chengdu.aliyuncs.com/louislan/docker_git_image:1.0 chat-next:latest
3.4 启动 chat-next 项目
docker run -d -p 5300:3000 \
   -e CODE=****** \
   -e DEEPSEEK_API_KEY=**********  \
   --name chat-next \
   chat-next:latest

这里将项目部署在了5300端口,由于之前放开过该端口,故现在可以通过 ip:port 方式进行访问了。 到这里就可以使用 OpenAiApikey 愉快的使用了!

4、使用 Deepseek 的配置

最近 Deepseek 比较火,OpenAiApikey 也已经到期了,所以打算使用 DeepseekApikey 来使用。参考官方的配置说明,在启动 Docker 镜像时添加上 Deepseek 的配置,启动成功后配置并没有生效。查看官方构建镜像的 Dockerfile 时发现并没有将 Deepseek 的配置加入构建时的参数中,故需要重新编写 Dockerfile ,重新构建镜像。

首先,Fork 官方的项目到自己的 Github 账户,编辑 Dockerfile 文件

1739243644591.png

在构建文件中添加 Deepseek 的配置:

1739243739815.png

之后,参考上半部分的使用阿里云容器构建服务,构建这个 Fork 的镜像,再从阿里云私仓 pull 到本地,再在启动时添加上 Deepseek 的配置启动镜像。

docker run -d -p 5300:3000 \
   -e CODE=**** \
   -e DEEPSEEK_URL=https://api.deepseek.com  \
   -e DEEPSEEK_API_KEY=**** \
   -e DEFAULT_MODEL=deepseek-reasoner  \
   --name chat-next \
   chat-next:latest

之后在就可以正常的使用 Deepseek 了!

5、安装 nginx

参考官方文档,基于 Debian: https://nginx.org/en/linux_packages.html#Debian

6、 安装 Cerbot 配置 HTTPS 访问并自动续签

参考官方文档,基于 NginxPIP : https://certbot.eff.org/instructions?ws=nginx&os=pip

注:安装还是尽量参考最新的官方文档,百度、google、AI问答太耗时了,官方文档出错率是最低的!

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
Deep Research Web UI:开源版Deep Research!接入DeepSeek一键生成深度研究报告,可视化检索过程
Deep Research Web UI 是一款开源的 AI 研究助手工具,通过 AI 驱动的迭代搜索和多语言支持,帮助用户高效进行深度研究,并以树状结构可视化研究过程,支持导出为 Markdown 或 PDF 格式。
148 9
Deep Research Web UI:开源版Deep Research!接入DeepSeek一键生成深度研究报告,可视化检索过程
|
27天前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
56 19
|
7月前
|
负载均衡 应用服务中间件 持续交付
微服务架构下的Web服务器部署
【8月更文第28天】随着互联网应用的不断发展,传统的单体应用架构逐渐显露出其局限性,特别是在可扩展性和维护性方面。为了解决这些问题,微服务架构应运而生。微服务架构通过将应用程序分解成一系列小型、独立的服务来提高系统的灵活性和可维护性。本文将探讨如何在微服务架构中有效部署和管理Web服务器实例,并提供一些实际的代码示例。
281 0
|
4月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
6月前
|
前端开发 JavaScript
构建你的第一个Web应用:从零到部署
【8月更文挑战第33天】 在这篇文章中,我们将一起踏上构建一个基本Web应用的旅程。不同于传统的“安装这个、运行那个”教程,我们的目标是通过理解每一步的意义和目的来深化你的技术理解。我们将探索HTML、CSS、JavaScript的基础,并学习如何将它们结合起来创建一个简单的个人网站。接着,我们会介绍如何使用GitHub Pages进行免费部署,让你的应用上线。准备好了吗?让我们开始吧!
212 5
|
6月前
|
负载均衡 网络协议 应用服务中间件
web群集--rocky9.2源码部署nginx1.24的详细过程
Nginx 是一款由 Igor Sysoev 开发的开源高性能 HTTP 服务器和反向代理服务器,自 2004 年发布以来,以其高效、稳定和灵活的特点迅速成为许多网站和应用的首选。本文详细介绍了 Nginx 的核心概念、工作原理及常见使用场景,涵盖高并发处理、反向代理、负载均衡、低内存占用等特点,并提供了安装配置教程,适合开发者参考学习。
113 1
|
7月前
|
JavaScript 搜索推荐 前端开发
从零搭建到部署:Angular与Angular Universal手把手教你实现服务器端渲染(SSR),全面解析及实战指南助你提升Web应用性能与SEO优化效果
【8月更文挑战第31天】服务器端渲染(SSR)是现代Web开发的关键技术,能显著提升SEO效果及首屏加载速度,改善用户体验。Angular Universal作为官方SSR解决方案,允许在服务器端生成静态HTML文件。本文通过具体示例详细介绍如何使用Angular Universal实现SSR,并分享最佳实践。首先需安装Node.js和npm。
218 1
|
7月前
|
Java UED 自然语言处理
Struts 2 国际化竟有如此神奇魔力?快来揭开多语言支持的 Web 应用神秘面纱
【8月更文挑战第31天】在全球化背景下,Web应用需适应多种语言环境。Struts 2凭借其强大的国际化(i18n)支持,简化了多语言应用开发。通过不同语言的资源文件,它能自动匹配用户语言偏好,优化用户体验并扩展用户群。下面是一个示例:创建`messages.properties`(英语)与`messages_zh_CN.properties`(中文),并在Struts 2的Action类及JSP页面中调用`getText()`方法及Struts标签展示相应语言内容。此外,在struts.xml中指定资源文件,以确保框架正确加载对应语言包。通过这些步骤,开发者可以轻松实现应用的多语言支持。
97 0
|
7月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
88 0
|
7月前
|
Java 开发者 关系型数据库
JSF与AWS的神秘之旅:如何在云端部署JSF应用,让你的Web应用如虎添翼?
【8月更文挑战第31天】在云计算蓬勃发展的今天,AWS已成为企业级应用的首选平台。本文探讨了在AWS上部署JSF(JavaServer Faces)应用的方法,这是一种广泛使用的Java Web框架。通过了解并利用AWS的基础设施与服务,如EC2、RDS 和 S3,开发者能够高效地部署和管理JSF应用。文章还提供了具体的部署步骤示例,并讨论了使用AWS可能遇到的挑战及应对策略,帮助开发者更好地利用AWS的强大功能,提升Web应用开发效率。
93 0