
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
nwserver 是 Neverwinter Nights: Enhanced Edition (NWN:EE) 的 Docker 镜像,用于快速部署和运行 NWN:EE 游戏服务器。该镜像支持通过环境变量灵活配置服务器参数,可加载自定义模块、Hak 资源等,适用于搭建私人游戏服务器或公共服务器。
https://github.com/urothis/nwserver/issues
通过环境变量配置,可使用 docker -e 或 --env-file 指定。
以下环境变量用于配置服务器实例(列出默认值):
bashNWN_PORT=5121 # 服务器端口 NWN_MODULE=DockerDemo # 加载的模块名称 NWN_SERVERNAME=我太懒了,没配置服务器名称。 # 服务器名称 NWN_PUBLICSERVER=0 # 是否为公共服务器(0=否,1=是) NWN_MAXCLIENTS=96 # 最大客户端数量 NWN_MINLEVEL=1 # 最低角色等级 NWN_MAXLEVEL=40 # 最高角色等级 NWN_PAUSEANDPLAY=1 # 暂停与游玩模式(1=启用) NWN_PVP=2 # PVP 模式(2=团队PVP) NWN_SERVERVAULT=1 # 服务器仓库启用状态(1=启用) NWN_ELC=1 # 增强角色创建限制(ELC,1=启用) NWN_ILR=1 # 物品等级限制(ILR,1=启用) NWN_GAMETYPE=0 # 游戏类型(0=默认) NWN_ONEPARTY=0 # 是否单团队模式(0=否) NWN_DIFFICULTY=3 # 难度等级(3=困难) NWN_AUTOSAVEINTERVAL=0 # 自动保存间隔(0=禁用) NWN_RELOADWHENEMPTY=0 # 空服时重载模块(0=否) NWN_PLAYERPASSWORD= # 玩家密码(留空则无需密码) NWN_DMPASSWORD= # DM(地下城主)密码 NWN_ADMINPASSWORD= # 管理员密码 NWN_NWSYNCURL= # NWSync 资源URL NWN_NWSYNCHASH= # NWSync 资源哈希值
以下环境变量用于在运行时获取实例信息(列出示例输出):
bashNWN_VERSION=8193.35.36 # 服务器版本 NWN_IMAGE_BUILD_DATE=2023-03-17 # 镜像构建日期
注意:该镜像不包含任何官方战役或 premium 模块,仅包含运行自定义模块所需的基础组件。所有需加载的资源(模块、Hak 等)需放置在服务器目录中。
(已修复 docker-proxy 导致端口随机化的问题,无需再使用
--net=host。但端口转发时仍需通过NWN_PORT指定服务器端口。)
服务器目录用于存放模块、Hak、Tlk 等资源,运行时临时数据(日志、当前游戏状态等)不会存储在此目录,因此可共享给多个实例。
bashmkdir server && cd server mkdir modules/ hak/ tlk/ # 将你的资源放入这些目录
在服务器目录中执行以下命令测试服务器:
bashcd server # 确保在刚创建的服务器目录中 docker run --rm -it \ -p 5121:5121/udp -e NWN_PORT=5121 \ -v $(pwd):/nwn/home \ -e NWN_MODULE=mymodule \ -e NWN_PUBLICSERVER=1 \ urothis/nwserver:8189
测试成功后,按 Ctrl+C 停止服务器,容器会自动删除(--rm 参数)。
注意:命令中通过
-p映射端口,并通过-e NWN_PORT=5121告知服务器实际端口。若使用不同端口转发,需修改该值。若处于 NAT 环境且未配置端口转发,服务器会尝试通过 NAT 穿透连接客户端,失败时使用中继连接。建议测试完成后配置防火墙规则或端口转发。
使用以下命令在后台启动服务器,并配置自动重启:
bashdocker run --restart unless-stopped -dit \ -p 5121:5121/udp -e NWN_PORT=5121 \ --name mycoolserver \ -v $(pwd):/nwn/home \ -e NWN_MODULE=mymodule \ -e NWN_PUBLICSERVER=1 \ urothis/nwserver:8189
--restart unless-stopped:除非手动停止,否则容器退出时自动重启。-dit:后台运行并分配终端。--name mycoolserver:为容器命名,便于后续管理。docker attach mycoolserver 连接(按 Ctrl+P Ctrl+Q 断开连接,不终止服务器)。bashdocker logs -f mycoolserver
由于所有数据存储在服务器目录中,升级时只需停止旧容器,启动新版本镜像即可:
bashdocker stop mycoolserver docker rm mycoolserver docker run --restart unless-stopped -dit \ -p 5121:5121/udp -e NWN_PORT=5121 \ --name mycoolserver \ -v $(pwd):/nwn/home \ -e NWN_MODULE=mymodule \ -e NWN_PUBLICSERVER=1 \ urothis/nwserver:8184 # 注意:修改为新版本标签
服务器崩溃时,崩溃转储文件会导出到服务器目录中,便于排查问题。
将对应语言的 dialog.tlk 文件放入服务器目录(与 modules/、hak/ 同级),即可使服务器支持该语言。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务