Workbuddy云部署需依次完成环境准备、源码配置、容器编排、反向代理与HTTPS配置、服务验证五步:Ubuntu 22.04实例安装Docker,拉取代码并配置.env,docker-compose构建启动四服务,Nginx代理+Certbot签发SSL,最后curl及浏览器多维度验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您需要将Workbuddy应用部署至云端环境,需完成从环境准备、服务配置到容器化发布的一系列标准化操作。以下是执行Workbuddy云部署的具体流程:
一、准备云服务器与基础环境
该步骤旨在为Workbuddy提供稳定、兼容的运行底座,包括操作系统版本校验、必要依赖安装及网络策略配置。
1、登录云服务商控制台,创建一台Ubuntu 22.04 LTS(64位)实例,规格建议不低于2核4GB内存。
2、通过SSH连接实例,执行sudo apt update && sudo apt upgrade -y更新系统包索引与已安装软件。
3、安装Docker与Docker Compose:运行curl -fsSL https://get.docker.com | sh,随后执行sudo usermod -aG docker $USER并重启shell会话。
4、验证安装结果:执行docker --version与docker-compose --version均应返回有效版本号。
二、获取并配置Workbuddy源码与环境变量
此环节确保部署所用代码为官方可信分支,并通过环境变量注入云环境所需的动态参数。
1、在服务器上执行git clone https://github.com/workbuddy-org/workbuddy.git拉取主仓库代码。
2、进入项目根目录后,复制.env.example为.env,使用vim .env编辑关键字段。
3、设置DB_HOST为云数据库内网地址,REDIS_URL指向同VPC内的Redis实例连接串,JWT_SECRET生成32位随机字符串。
4、务必确认DATABASE_URL格式为postgresql://user:pass@host:port/dbname?sslmode=disable。
三、构建镜像并启动容器集群
利用Docker Compose统一编排前端、后端与数据库服务,实现多组件协同启动与端口映射。
1、确保当前路径下存在docker-compose.yml文件,其services中包含web、api、postgres、redis四个服务定义。
2、执行docker-compose build --no-cache强制重建所有镜像,避免本地缓存导致版本不一致。
3、运行docker-compose up -d以后台模式启动全部服务,等待约90秒让PostgreSQL完成初始化。
4、检查容器状态:执行docker-compose ps,所有服务State列必须显示Up且无exited字样。
四、配置反向代理与HTTPS证书
通过Nginx反向代理屏蔽内部端口暴露风险,并启用Let’s Encrypt自动签发SSL证书保障传输安全。
1、在宿主机安装Nginx:sudo apt install nginx -y,然后停用默认站点sudo rm /etc/nginx/sites-enabled/default。
2、创建/etc/nginx/sites-available/workbuddy,配置server块,将location /代理至http://localhost:8080(前端)与/api/代理至http://localhost:3000(后端)。
3、启用站点:sudo ln -sf /etc/nginx/sites-available/workbuddy /etc/nginx/sites-enabled/,并执行sudo nginx -t验证语法。
4、运行certbot --nginx -d your-domain.com,按提示完成DNS或HTTP验证,证书将自动部署并启用HTTPS重定向。
五、验证服务可用性与健康检查
通过多维度探测确认各层服务响应正常,包括网络连通性、API接口可达性及静态资源加载能力。
1、在服务器本地执行curl -I http://localhost,应返回HTTP/1.1 200 OK且Header含X-Frame-Options字段。
2、调用健康检查接口:curl http://localhost/api/health,响应体应为JSON格式{"status":"ok","timestamp":...}。
3、从公网访问https://your-domain.com,浏览器地址栏应显示锁形图标,开发者工具Network标签页中所有请求状态码均为200。
4、打开浏览器控制台,确认无Mixed Content警告,且WebSocket连接ws://your-domain.com/socket established。










