# 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 ./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 需要先停止容器运行 `docker compose down` 然后运行更新命令 `docker compose run --rm steamcmd updatemod` 更新完毕后启动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并提供详细的错误信息 --- **祝您游戏愉快!** 🎮