212 lines
4.8 KiB
Markdown
212 lines
4.8 KiB
Markdown
# 服务器登录与部署完整操作指南
|
||
|
||
## 第一步:登录服务器
|
||
|
||
### 方法 1:Windows PowerShell(最简单)
|
||
|
||
1. **打开 PowerShell**
|
||
- 按 `Win + X`
|
||
- 选择 **Windows Terminal** 或 **PowerShell**
|
||
- 或者按 `Win + R`,输入 `powershell`,回车
|
||
|
||
2. **执行 SSH 登录命令**
|
||
```bash
|
||
ssh root@47.98.113.167
|
||
```
|
||
|
||
3. **如果是第一次连接**
|
||
- 会提示:`Are you sure you want to continue connecting (yes/no)?`
|
||
- 输入 `yes`,回车
|
||
|
||
4. **输入密码**
|
||
- 提示 `root@47.98.113.167's password:`
|
||
- 输入服务器密码(输入时不显示,正常输入完回车即可)
|
||
|
||
5. **登录成功标志**
|
||
```
|
||
Welcome to Ubuntu 22.04.x LTS
|
||
root@服务器名称:~#
|
||
```
|
||
|
||
---
|
||
|
||
### 方法 2:使用 SSH 密钥(如果已配置)
|
||
|
||
如果你之前配置过密钥,直接:
|
||
```bash
|
||
ssh root@47.98.113.167
|
||
```
|
||
不需要输入密码,直接登录。
|
||
|
||
---
|
||
|
||
### 方法 3:通过阿里云/腾讯云控制台(如果忘记密码)
|
||
|
||
1. **登录云服务商控制台**
|
||
- 阿里云:https://ecs.console.aliyun.com
|
||
- 腾讯云:https://console.cloud.tencent.com/cvm
|
||
|
||
2. **找到你的服务器**
|
||
- IP: `47.98.113.167`
|
||
|
||
3. **使用远程连接/VNC**
|
||
- 点击 **远程连接** 或 **VNC**
|
||
- 或者点击 **重置密码**,设置新密码后再用方法 1 登录
|
||
|
||
---
|
||
|
||
## 第二步:清理服务器空间
|
||
|
||
登录成功后,复制下面的命令,粘贴到终端,回车执行:
|
||
|
||
```bash
|
||
echo "=========================================="
|
||
echo "开始清理服务器..."
|
||
echo "=========================================="
|
||
echo ""
|
||
echo "当前磁盘占用:"
|
||
df -h
|
||
echo ""
|
||
echo "清理 Docker 无用资源..."
|
||
docker system prune -a --volumes -f
|
||
echo ""
|
||
echo "清理 systemd 日志(保留 7 天)..."
|
||
journalctl --vacuum-time=7d
|
||
echo ""
|
||
echo "清理 APT 缓存..."
|
||
apt-get clean
|
||
apt-get autoremove -y
|
||
echo ""
|
||
echo "清理后磁盘占用:"
|
||
df -h
|
||
echo ""
|
||
echo "=========================================="
|
||
echo "清理完成!"
|
||
echo "=========================================="
|
||
```
|
||
|
||
**预期结果:**
|
||
- 会输出清理前后的磁盘占用对比
|
||
- 至少释放几 GB 空间
|
||
|
||
---
|
||
|
||
## 第三步:执行部署
|
||
|
||
清理完成后,继续执行:
|
||
|
||
```bash
|
||
cd /var/lib/xiaoxia-saas-staging/repo/infra/docker
|
||
chmod +x deploy-staging.sh
|
||
./deploy-staging.sh
|
||
```
|
||
|
||
**部署过程会:**
|
||
1. 复制环境变量文件
|
||
2. 确保 public 目录存在
|
||
3. 构建 api、worker、web 三个镜像
|
||
4. 启动所有容器
|
||
|
||
**预计时间:**
|
||
- api 和 worker:1-2 分钟(有缓存)
|
||
- web:3-5 分钟(需要 npm install + next build)
|
||
|
||
---
|
||
|
||
## 第四步:验证部署
|
||
|
||
部署完成后,检查服务状态:
|
||
|
||
```bash
|
||
# 查看容器状态
|
||
docker ps
|
||
|
||
# 测试 API
|
||
curl http://127.0.0.1:8000/api/v1/health
|
||
|
||
# 查看前端端口(3001)
|
||
curl -I http://127.0.0.1:3001
|
||
```
|
||
|
||
**成功标志:**
|
||
- `docker ps` 显示 5 个容器运行中(postgres、redis、api、worker、web)
|
||
- API 返回健康检查 JSON
|
||
- 前端返回 HTTP 200
|
||
|
||
---
|
||
|
||
## 第五步:访问服务
|
||
|
||
在你的浏览器打开:
|
||
- **API**: `http://47.98.113.167:8000/api/v1/health`
|
||
- **前端**: `http://47.98.113.167:3001`
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
### Q1: 提示 "Permission denied"
|
||
**原因**: 密码错误或没有权限
|
||
**解决**:
|
||
- 确认密码正确
|
||
- 或者去云服务商控制台重置密码
|
||
|
||
### Q2: 提示 "Connection refused" 或 "Network error"
|
||
**原因**: 网络不通或服务器防火墙
|
||
**解决**:
|
||
- 检查服务器是否开机
|
||
- 检查安全组/防火墙是否放行 22 端口
|
||
|
||
### Q3: 部署时提示 "No space left on device"
|
||
**原因**: 清理后空间还是不够
|
||
**解决**:
|
||
```bash
|
||
# 查看最大的目录
|
||
du -sh /* | sort -hr | head -20
|
||
|
||
# 手动删除不需要的大文件/目录
|
||
```
|
||
|
||
### Q4: 部署过程中断
|
||
**原因**: 网络不稳定
|
||
**解决**:
|
||
```bash
|
||
# 使用 tmux 隔离会话
|
||
tmux new -s deploy
|
||
cd /var/lib/xiaoxia-saas-staging/repo/infra/docker
|
||
./deploy-staging.sh
|
||
|
||
# 按 Ctrl+B, 然后按 D 离开
|
||
# 部署继续在后台跑,不会因为 SSH 断开而中断
|
||
|
||
# 重新连接查看
|
||
tmux attach -t deploy
|
||
```
|
||
|
||
---
|
||
|
||
## 完整的一键操作(复制粘贴)
|
||
|
||
如果你想一次性执行所有步骤,登录后直接粘贴:
|
||
|
||
```bash
|
||
echo "========== 步骤 1: 清理空间 ==========" && \
|
||
docker system prune -a --volumes -f && \
|
||
journalctl --vacuum-time=7d && \
|
||
apt-get clean && apt-get autoremove -y && \
|
||
echo "" && echo "========== 步骤 2: 开始部署 ==========" && \
|
||
cd /var/lib/xiaoxia-saas-staging/repo/infra/docker && \
|
||
chmod +x deploy-staging.sh && \
|
||
./deploy-staging.sh && \
|
||
echo "" && echo "========== 步骤 3: 验证服务 ==========" && \
|
||
docker ps && \
|
||
curl http://127.0.0.1:8000/api/v1/health && \
|
||
echo "" && echo "========== 部署完成! =========="
|
||
```
|
||
|
||
---
|
||
|
||
## 需要帮助?
|
||
|
||
如果执行过程中遇到任何报错,把错误信息发给我,我帮你分析。
|