很多用ai生成项目的小伙伴,写完本地项目后,都会卡在最后一步:如何把本地项目部署到云服务器,让所有人都能通过公网访问?其实服务器部署并没有想象中复杂,不用精通复杂的Linux命令,也无需掌握高深的运维知识,跟着完整实操流程一步步操作,零基础也能轻松搞定。
一、云服务器选购:
1.在腾讯云或阿里云购买服务器:
腾讯云可以白嫖一个月
学生可以认证购买学生折扣
个人使用建议买轻量级就够用了,项目较大可以买大一点的
服务器选择Docker,如果选错了可以重装系统
在信息里面查看初始用户名和密码,后续登录要用
重置密码先关机,选择离线重置
2.工具下载:
Xshell8 与 Xftp 8 的安装与基本操作 官网:https://www.xshell.com/zh/free-for-home-school/
Xshell 8负责连接云服务器,Xftp 8上传文件。
Xshell 8连接云服务器:
先新建会话
这里名称随意取,主机就是服务器里的 IPv4
用户名就是初始用户名
输入用户名,密码后,进入这个页面就是成功
如果登录有问题可以检查一下防火墙有没有少端口。
Xftp 8的使用和Xshell 8差不多
3.现在要对AI生成的项目进行部署操作(建议备份)
可以给 ai 提示词,让ai操作
把Docker Compose 部署参考文档.md放到docs文件夹
下载文档:
Docker Compose 部署参考文档
这是完整的提示词:
认真审核并理解所提供的 docs\Docker Compose 部署参考文档.md 的内容,并基于我的项目源码和腾讯云服务器相关配置,帮我生成使用Docker Compose 方式部署项目全栈的相关文件及完整操作md教程。
我的腾讯云服务器相关配置如下(记得把服务器配置改成自己的):
CPU 2核
内存2GB
系统盘 SSD云硬盘 40GB
流量包 200GB/月(带宽 3Mbps)
操作系统 Ubuntu Server 24.04 LTS 64bit
预装应用 Docker 27.5.1
公网IP 你自己的IP
pip和pypi设置成国内镜像源地址:https://mirrors.aliyun.com/pypi/simple/
前端的源码使用vue3使用打包后的dist源码数据
记得把Docker Compose 部署参考文档.md放到docs文件夹
可以用ai的提示词优化再优化一遍,也可以直接输出。我这里用的是WorkBuddy,codex,claude code,Trae CN。都可以
4.Gitee 云仓库管理:
接着我们把 ai 生成好的上传gitee
工作台 - Gitee.com
在我们的gitee里新建一个仓库:
把要部署到云服务器的项目上传到gitee仓库:
不知道git命令的可以参考一下:
在项目文件夹里打开
输入命令:
1.初始化本地git仓库(只执行一次)
git init
2.把全部文件加入暂存区,小数点不要丢
git add .
3.提交到本地版本库
git commit -m "初始提交:完整项目代码"如果提交到本地仓库报错,提示要设置用户名邮箱,执行下面两行(替换成你自己 gitee 的用户名和注册邮箱)
git config --global user.name "你的Gitee用户名"
git config --global user.email "你的gitee注册邮箱"
4.关联远程gitee仓库
git remote add origin 你的仓库地址
5.推送上传代码到gitee
git push -u origin "master"
5.返回Xshell 8工具操作
在xshell中输出 cd /home/ubuntu 跳转到目录
从 Gitee 远程仓库,把整套项目代码下载到服务器本地(用自己仓库地址)
执行完成后可以从 Xftp 8 看到刚刚从 Gitee 下载的项目了
构建与启动相关Linux与docker指令:
在 Xshell 8 进入项目路径: cd 项目源码路径
不确定路径就在 Xftp 8 里面看一下路径
docker配置检查:
docker --version
6#检查 yml 语法、检查.env 文件格式
接下来是重点输入这两条命令:
#检查 yml 语法、检查.env 文件格式
docker compose config --quiet
#将 yml 里面
${变量名}占位符,替换成.env里真实的值docker compose config > /tmp/sfma-compose-rendered.yml
这个两个都无报错就成功了
能正常执行上面两个语句就跳过 .env 配置
这里是有问题,无输出就是成功
.env 配置:
nano操作的相关快捷键
填写相关配置信息后,再执行:
(1)ctrl+O :保存
(2)执行回车键
(3)Ctrl+X
学过一点Linux的应该会
如果 .env 文件报错,或者没有.env,重新配置(不会可以截图会ai):
#进入.env 查看
nano .env
#重新生成 .env 文件(确保有模板文件):
cp .env.example .env#先检查你的服务器有没有这个模板文件
ls -la
我这里的模板文件是.env.production
创建.env文件: cp .env.production .env
如果没有 .env.example 文件,问ai,或者让ai生成需要的数据放在 .env
配置 .env相关信息: nano .env
nano .env进入后是下面这个文件
可以问题 ai 这些信息是什么意思,ai会指导你这么填
再次校验docker配信息
这次没有问题
这个时间比较久可能要10分钟,项目越大越久
拉取前端和后端的源码镜像
sudo docker compose build --pull frontend
sudo docker compose build --pull backend
#拉取完成后启动全部服务
sudo docker compose up -d
到这里成功了就可以用公网登录自己的项目了
如果失败了还有问题,可能是之前ai配置时没配置好 requirements.txt,可以把问题发给ai。一般不会有特别大的问题,我操作时只碰到了.env文件有问题,用豆包就解决了。
停止服务器
#停止容器,保留容器、保留数据,后续可以直接 up 重启
sudo docker compose stop
容器管理与运维:
成功部署后,日常运维离不开对 Docker 容器的有效管理。以下是一些常用命令:
- 查看运行中的容器状态:
sudo docker compose ps可以列出当前项目下所有容器的运行状态、端口映射等信息。 - 查看容器实时日志:当服务出现异常时,使用
sudo docker compose logs -f [服务名](例如sudo docker compose logs -f backend)可以实时追踪指定容器的日志输出,-f参数表示持续跟随(follow)。查看所有服务的日志则使用sudo docker compose logs。 - 重启单个服务:如果只修改了某个服务(如后端)的代码或配置,无需停止全部服务,可以使用
sudo docker compose restart backend来单独重启该服务。 - 重建并启动服务:当 Dockerfile 或构建上下文发生变更时,需要重新构建镜像并启动。执行
sudo docker compose up -d --build会强制重新构建镜像并启动容器。 - 进入容器内部调试:若需进入容器内部执行命令(如检查文件、运行数据库客户端),可使用
sudo docker exec -it [容器名] /bin/bash。容器名可以通过sudo docker compose ps查看。
服务更新与回滚:
当代码更新后,标准的更新流程如下:
- 在本地或通过 Git 将新代码推送至 Gitee 仓库。
- 在服务器的项目目录下,执行
git pull拉取最新代码。 - 执行
sudo docker compose down停止并移除当前所有容器(数据卷默认会保留)。 - 执行
sudo docker compose up -d --build重新构建并启动所有服务。
如果新版本出现问题需要回滚,可以:
- 使用
git log查看提交历史,找到稳定版本的提交哈希(commit hash)。 - 执行
git reset --hard [提交哈希]回退代码。 - 再次执行
sudo docker compose down和sudo docker compose up -d --build即可恢复到旧版本。
数据持久化与备份:
Docker Compose 中通过volumes配置实现数据持久化(如数据库数据)。务必在docker-compose.yml中正确定义数据卷。定期备份这些卷数据是保障项目安全的重要措施。可以使用sudo docker run --rm -v [卷名]:/data -v $(pwd):/backup alpine tar czf /backup/backup.tar.gz /data等命令进行备份。
监控与健康检查:
建议在docker-compose.yml中为关键服务配置healthcheck指令,Docker 会自动监控服务健康状态。同时,可以结合服务器监控工具(如htop,docker stats)观察系统资源使用情况。