Files
2025-07-24 11:56:55 +08:00

293 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DayZ服务器 Docker 部署项目
这是一个用于快速部署DayZ服务器的Docker化解决方案。通过Docker容器化技术您可以轻松地在任何支持Docker的系统上运行DayZ服务器无需复杂的本地环境配置。
## 🎯 项目特性
- **一键部署**: 使用Docker Compose实现一键部署DayZ服务器
- **自动安装**: 自动下载并安装SteamCMD和DayZ服务器
- **Mod支持**: 支持客户端和服务端Mod的自动加载
- **崩溃恢复**: 内置崩溃检测和自动重启机制
- **跨平台**: 支持Linux、Windows、macOS等操作系统
- **环境隔离**: 使用Docker容器确保环境隔离和一致性
- **配置灵活**: 支持通过环境变量自定义服务器配置
## 📋 系统要求
- Docker 20.10+
- Docker Compose 2.0+
- 至少4GB可用内存
- 至少10GB可用磁盘空间
- 稳定的网络连接用于下载SteamCMD和DayZ服务器
## 🚀 快速开始
### 1. 克隆项目
```bash
git clone <repository-url> ./Docker_DayzServer
cd Docker_DayzServer
```
### 2. 设置环境变量
创建 `.env` 文件并配置您的Steam账户信息
```bash
# 创建环境变量文件
cat > .env << EOF
STEAM_USERNAME=your_steam_username
STEAM_PASSWORD=your_steam_password
DAYZ_MISSIONS=dayzOffline.chernarusplus
DAYZ_SERVER_PORT=2302
DAYZ_CPU_COUNT=4
EOF
```
**重要**: 请确保使用有效的Steam账户该账户 不需要 拥有DayZ游戏。
### 3. 运行安装脚本
```bash
# 给安装脚本执行权限
chmod +x install.sh
# 运行安装脚本需要root权限
sudo ./install.sh
```
安装脚本将自动:
- 检测您的操作系统
- 安装Docker和Docker Compose
- 构建Docker镜像
- 启动DayZ服务器
### 4. 手动部署(可选)
如果您想手动部署,可以按以下步骤操作:
```bash
# 构建Docker镜像, 如果仓库有更新, 都需要重新 build 一次, 更新不需要 --no-cache
docker-compose build --no-cache
# 运行steamcmd容器进行初始安装
docker-compose run --rm steamcmd
# 启动所有服务
docker-compose up -d
```
## ⚙️ 配置说明
### 环境变量
| 变量名 | 默认值 | 说明 |
|--------|--------|------|
| `STEAM_USERNAME` | - | Steam用户名必需 |
| `STEAM_PASSWORD` | - | Steam密码必需 |
| `DAYZ_MISSIONS` | `dayzOffline.chernarusplus` | 服务器地图 |
| `DAYZ_SERVER_PORT` | `2302` | 服务器端口 |
| `DAYZ_CPU_COUNT` | `4` | 使用的CPU核心数 |
| `MOD_IDS` | `空` | 需要更新的modid,例如:"123456789,987654321" |
### 端口映射
| 容器端口 | 主机端口 | 说明 |
|----------|----------|------|
| 2302/udp | 2302/udp | DayZ游戏端口 |
| 2305/udp | 2305/udp | DayZ查询端口 |
| 2314/udp | 2314/udp | BattlEye RCon端口 |
### 目录结构
```
Docker_DayzServer/
├── docker-compose.yml # Docker Compose配置文件
├── DockerFile/ # Docker构建文件
│ ├── Dockerfile # Docker镜像定义
│ ├── install_dayz.sh # DayZ安装脚本
│ └── start.sh # 启动脚本
├── install.sh # 一键安装脚本
└── dayz/ # 数据目录(自动创建)
├── .steamcmd/ # SteamCMD数据
├── .dayz_server/ # DayZ服务器文件
├── client_mod/ # 客户端Mod
├── server_mod/ # 服务端Mod
├── battleye/ # BattlEye配置
├── profiles/ # 服务器配置文件
└── mpmissions/ # 地图文件
```
## 🎮 使用说明
### 启动服务器
```bash
# 启动所有服务
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f steamcmd
```
### 停止服务器
```bash
# 停止所有服务
docker-compose down
# 停止并删除数据卷(谨慎使用)
docker-compose down -v
```
### 重启服务器
```bash
# 重启服务
docker-compose restart steamcmd
```
### 更新服务器
```bash
# 重新构建镜像并启动
docker-compose build --no-cache
docker-compose up -d
```
## 🔧 Mod管理
### 添加客户端Mod
1. 将Mod文件放入 `dayz/client_mod/` 目录
2. Mod文件夹应以 `@` 开头
3. 重启服务器以加载新Mod
### 添加服务端Mod
1. 将Mod文件放入 `dayz/server_mod/` 目录
2. Mod文件夹应以 `@` 开头
3. 重启服务器以加载新Mod
### 更新客户端Mod
1. 需要先停止容器运行 `docker compose down`
2. 然后运行更新命令 `docker compose run --rm steamcmd updatemod`
3. 更新完毕后启动docker容器即可.
### Mod配置示例
```
dayz/
├── client_mod/
│ ├── @CF
│ └── @DayZExpansion
└── server_mod/
└── @DayZExpansionServer
```
## 📊 监控和日志
### 查看实时日志
```bash
# 查看容器日志
docker-compose logs -f steamcmd
# 查看特定时间段的日志
docker-compose logs --since="2024-01-01T00:00:00" steamcmd
```
### 服务器状态检查
```bash
# 检查容器状态
docker-compose ps
# 检查资源使用情况
docker stats steamcmd
```
## 🔒 安全配置
### BattlEye配置
BattlEye配置文件位于 `dayz/battleye/beserver_x64.cfg`,包含:
- RCon端口2314
- 自动生成的RCon密码
- 远程管理设置
### 防火墙配置
确保以下端口在防火墙中开放:
- UDP 2302 (游戏端口)
- UDP 2305 (查询端口)
- UDP 2314 (RCon端口)
## 🛠️ 故障排除
### 常见问题
1. **Steam登录失败**
- 检查Steam用户名和密码是否正确
- 检查网络连接
2. **服务器无法启动**
- 检查端口是否被占用
- 查看容器日志:`docker-compose logs steamcmd`
- 确保有足够的磁盘空间
3. **Mod加载失败**
- 检查Mod文件夹名称是否正确@开头
- 确保Mod文件完整
- 查看启动日志中的Mod加载信息
### 调试命令
```bash
# 进入容器进行调试
docker-compose exec steamcmd bash
# 查看容器资源使用情况
docker stats steamcmd
# 检查网络连接
docker-compose exec steamcmd netstat -tulpn
```
## 📝 更新日志
### v1.0.0
- 初始版本发布
- 支持基本的DayZ服务器部署
- 集成SteamCMD自动安装
- 支持Mod加载
- 内置崩溃恢复机制
## 🤝 贡献
欢迎提交Issue和Pull Request来改进这个项目
## 📄 许可证
本项目采用MIT许可证。详见LICENSE文件。
## ⚠️ 免责声明
- 本项目仅供学习和研究使用
- 请确保遵守DayZ和Steam的服务条款
- 使用本项目的风险由用户自行承担
- 建议在测试环境中先进行验证
## 📞 支持
如果您在使用过程中遇到问题,请:
1. 查看本文档的故障排除部分
2. 检查项目的Issue页面
3. 提交新的Issue并提供详细的错误信息
---
**祝您游戏愉快!** 🎮