Spaces:
Configuration error
Configuration error
# 🚀 Linux部署指南 | |
这是一个完整的聊天应用Linux部署指南,包含所有必要的脚本和配置文件。 | |
## 📋 部署清单 | |
### 🔧 必需软件 | |
- [ ] Docker Engine | |
- [ ] Docker Compose | |
- [ ] Git (可选,用于版本控制) | |
- [ ] Nginx (用于反向代理,可选) | |
- [ ] Certbot (用于SSL证书,可选) | |
### 📁 文件清单 | |
- [ ] `docker-compose.yml` - 生产环境配置 | |
- [ ] `docker-compose.dev.yml` - 开发环境配置 | |
- [ ] `Dockerfile` (client & server) - 容器构建文件 | |
- [ ] `start.sh` - Linux启动脚本 | |
- [ ] `stop.sh` - Linux停止脚本 | |
- [ ] `deploy.sh` - 自动部署脚本 | |
- [ ] `monitor.sh` - 监控脚本 | |
- [ ] `test.sh` - 功能测试脚本 | |
- [ ] `Makefile` - 管理命令 | |
## 🚀 快速部署 | |
### 方法1: 一键部署(推荐) | |
```bash | |
# 下载项目 | |
git clone <your-repo-url> | |
cd chat-app | |
# 设置权限 | |
chmod +x *.sh | |
# 一键部署 | |
sudo ./deploy.sh | |
``` | |
### 方法2: 手动部署 | |
```bash | |
# 1. 安装Docker | |
curl -fsSL https://get.docker.com -o get-docker.sh | |
sudo sh get-docker.sh | |
# 2. 启动应用 | |
./start.sh | |
# 3. 验证部署 | |
./test.sh | |
``` | |
### 方法3: 使用Makefile | |
```bash | |
make install # 设置权限 | |
make start # 启动应用 | |
make health # 检查状态 | |
``` | |
## 🔒 SSL配置(生产环境推荐) | |
```bash | |
# 自动配置SSL和nginx反向代理 | |
sudo ./setup-ssl.sh | |
``` | |
## 📊 监控和维护 | |
```bash | |
# 查看实时监控 | |
./monitor.sh | |
# 自动刷新监控(每30秒) | |
watch -n 30 ./monitor.sh | |
# 查看日志 | |
make logs | |
# 备份数据库 | |
make backup | |
# 测试功能 | |
./test.sh | |
``` | |
## 🔧 故障排除 | |
### 常见问题 | |
1. **端口被占用** | |
```bash | |
# 检查端口使用情况 | |
sudo netstat -tulpn | grep :3000 | |
sudo netstat -tulpn | grep :5000 | |
sudo netstat -tulpn | grep :27017 | |
``` | |
2. **Docker权限问题** | |
```bash | |
# 将用户添加到docker组 | |
sudo usermod -aG docker $USER | |
# 重新登录或执行 | |
newgrp docker | |
``` | |
3. **服务启动失败** | |
```bash | |
# 查看详细日志 | |
docker-compose logs -f | |
# 检查容器状态 | |
docker-compose ps | |
``` | |
4. **内存不足** | |
```bash | |
# 检查系统资源 | |
free -h | |
df -h | |
# 清理Docker资源 | |
make clean | |
``` | |
## 🔐 安全配置 | |
### 防火墙设置 | |
```bash | |
# Ubuntu/Debian | |
sudo ufw allow 22 # SSH | |
sudo ufw allow 80 # HTTP | |
sudo ufw allow 443 # HTTPS | |
sudo ufw enable | |
# CentOS/RHEL | |
sudo firewall-cmd --permanent --add-service=ssh | |
sudo firewall-cmd --permanent --add-service=http | |
sudo firewall-cmd --permanent --add-service=https | |
sudo firewall-cmd --reload | |
``` | |
### 环境变量安全 | |
1. 修改 `server/.env` 中的JWT密钥 | |
2. 更改MongoDB默认密码 | |
3. 设置强密码策略 | |
### 定期维护 | |
```bash | |
# 每日备份(添加到crontab) | |
0 2 * * * /path/to/chat-app/make backup | |
# 每周更新 | |
0 3 * * 0 /path/to/chat-app/make update | |
# 监控磁盘空间 | |
0 */6 * * * df -h | mail -s "Disk Usage Report" admin@yourdomain.com | |
``` | |
## 📈 性能优化 | |
### 系统级优化 | |
```bash | |
# 增加文件描述符限制 | |
echo "* soft nofile 65536" >> /etc/security/limits.conf | |
echo "* hard nofile 65536" >> /etc/security/limits.conf | |
# 优化网络参数 | |
echo "net.core.somaxconn = 65536" >> /etc/sysctl.conf | |
sysctl -p | |
``` | |
### Docker优化 | |
```bash | |
# 限制日志大小 | |
echo '{ | |
"log-driver": "json-file", | |
"log-opts": { | |
"max-size": "10m", | |
"max-file": "3" | |
} | |
}' > /etc/docker/daemon.json | |
systemctl restart docker | |
``` | |
## 🆘 紧急恢复 | |
### 快速恢复步骤 | |
1. 停止所有服务: `make stop` | |
2. 恢复数据库备份: `make restore FILE=backup.gz` | |
3. 重启服务: `make start` | |
4. 验证功能: `./test.sh` | |
### 数据备份策略 | |
- 每日自动备份数据库 | |
- 保留最近30天的备份 | |
- 异地备份重要数据 | |
## 📞 支持联系 | |
如果遇到问题,请: | |
1. 查看日志: `make logs` | |
2. 运行测试: `./test.sh` | |
3. 检查监控: `./monitor.sh` | |
4. 提交Issue到项目仓库 | |