!Valheim
Docker容器化的Valheim服务器(支持BepInEx和ValheimPlus)
项目托管于[***]
。
不要忘记修改WORLD_NAME以匹配你的世界名称!对于现有世界,这是worlds/文件夹中不带.db/.fwl扩展名的文件名。
如果要通过互联网与朋友一起玩且处于NAT之后,请确保UDP端口2456-2457已转发到容器主机,并确保在任何防火墙中这些端口可公开访问。
更多信息请参见查找服务器部分。
仅局域网游戏请参见Steam服务器收藏夹与局域网游戏部分。
更多部署选项请参见部署部分。
向容器授予CAP_SYS_NICE权限是可选的,它允许Valheim使用的Steam库为自身分配更多CPU周期。没有此权限,启动日志中会显示Warning: failed to set thread priority消息。
所有变量名称和值均区分大小写!
| 名称 | 默认值 | 用途 |
|---|---|---|
SERVER_NAME | My Server | 服务器在服务器浏览器中显示的名称 |
SERVER_PORT | 2456 | 服务器监听的UDP起始端口 |
WORLD_NAME | Dedicated | 世界名称(不带.db/.fwl文件扩展名) |
SERVER_PASS | secret | 登录服务器的密码 - 至少5个字符! |
SERVER_PUBLIC | true | 服务器是否在服务器浏览器中列出(true是,false否) |
SERVER_ARGS | 额外的Valheim服务器命令行参数 | |
ADMINLIST_IDS | 管理员SteamID的空格分隔列表,会覆盖现有adminlist.txt条目! | |
BANNEDLIST_IDS | 被封禁SteamID的空格分隔列表,会覆盖现有bannedlist.txt条目! | |
PERMITTEDLIST_IDS | 白名单SteamID的空格分隔列表,会覆盖现有permittedlist.txt条目! | |
UPDATE_CRON | */15 * * * * | 更新检查的Cron计划(若设为空字符串或使用旧版UPDATE_INTERVAL则禁用) |
UPDATE_IF_IDLE | true | 仅当服务器空闲(无玩家连接)时才运行更新检查(true或false) |
RESTART_CRON | 0 5 * * * | 服务器重启的Cron计划(若设为空字符串则禁用) |
RESTART_IF_IDLE | true | 仅当服务器空闲时才运行每日重启(true或false) |
TZ | Etc/UTC | 容器时区(参考时区数据库列表) |
BACKUPS | true | 是否创建定期备份(true或false) |
BACKUPS_CRON | 0 * * * * | 世界备份的Cron计划(若设为空字符串或使用旧版BACKUPS_INTERVAL则禁用) |
BACKUPS_DIRECTORY | /config/backups | 备份目录路径 |
BACKUPS_MAX_AGE | 3 | 旧备份自动删除的天数 |
BACKUPS_MAX_COUNT | 0 | 保留的最大备份数,0表示无限制 |
BACKUPS_IF_IDLE | true | 即使长时间无玩家连接也进行备份 |
BACKUPS_IDLE_GRACE_PERIOD | 3600 | 当BACKUPS_IF_IDLE=false时,最后一个玩家断开连接后的宽限期(秒),在此期间仍会创建备份 |
PERMISSIONS_UMASK | 022 | 备份、配置文件和目录的Umask权限 |
STEAMCMD_ARGS | validate | 额外的steamcmd命令行参数 |
VALHEIM_PLUS | false | 是否加载ValheimPlus模组(配置文件在/config/valheimplus,额外插件在/config/valheimplus/plugins),不能与BEPINEX同时使用。 |
BEPINEX | false | 是否加载BepInExPack Valheim模组(配置文件在/config/bepinex,插件在/config/bepinex/plugins),不能与VALHEIM_PLUS同时使用。 |
SUPERVISOR_HTTP | false | 启用supervisor的HTTP服务器 |
SUPERVISOR_HTTP_PORT | 9001 | 设置supervisor的HTTP服务器端口 |
SUPERVISOR_HTTP_USER | admin | supervisor HTTP服务器用户名 |
SUPERVISOR_HTTP_PASS | supervisor HTTP服务器密码 | |
STATUS_HTTP | false | 启用状态HTTP服务器,仅对公共服务器(SERVER_PUBLIC=true)有用 |
STATUS_HTTP_PORT | 80 | 状态HTTP服务器TCP端口 |
STATUS_HTTP_CONF | /config/httpd.conf | busybox httpd配置文件路径 |
STATUS_HTTP_HTDOCS | /opt/valheim/htdocs | 状态httpd的htdocs路径,status.json在此生成 |
SYSLOG_REMOTE_HOST | 发送日志的远程syslog主机或IP | |
SYSLOG_REMOTE_PORT | 514 | 远程syslog UDP端口 |
SYSLOG_REMOTE_AND_LOCAL | true | 发送日志到远程syslog服务器时是否同时本地记录 |
PUID | 0 | 运行valheim-server的UID |
PGID | 0 | 运行valheim-server的GID |
有一些未文档化的环境变量,若配置错误可能导致问题,可在defaults中找到。
Valheim服务器默认日志包含大量噪音,这些环境变量允许用户移除不需要的日志行。
| 前缀 | 默认值 | 用途 |
|---|---|---|
VALHEIM_LOG_FILTER_EMPTY | true | 过滤空日志行 |
VALHEIM_LOG_FILTER_UTF8 | true | 过滤无效UTF-8字符 |
VALHEIM_LOG_FILTER_MATCH | | 过滤完全匹配的日志行 |
VALHEIM_LOG_FILTER_STARTSWITH | (Filename: | 过滤以指定字符串开头的日志行 |
VALHEIM_LOG_FILTER_ENDSWITH | 过滤以指定字符串结尾的日志行 | |
VALHEIM_LOG_FILTER_CONTAINS | 过滤包含指定字符串的日志行 | |
VALHEIM_LOG_FILTER_REGEXP | 过滤匹配正则表达式的日志行 |
默认过滤器移除以下内容:
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)行Assertion Failed警告日志行(参见#104)Fallback handler could not load library开头的行如果存在与日志过滤器同名的ON_前缀环境变量,当日志过滤器匹配时,不会移除日志行,而是执行该变量内容,并将日志行通过标准输入传递给命令。
| 前缀 | 用途 |
|---|---|
ON_VALHEIM_LOG_FILTER_MATCH | 当日志行完全匹配时运行命令钩子 |
ON_VALHEIM_LOG_FILTER_STARTSWITH | 当日志行以指定字符串开头时运行命令钩子 |
ON_VALHEIM_LOG_FILTER_ENDSWITH | 当日志行以指定字符串结尾时运行命令钩子 |
ON_VALHEIM_LOG_FILTER_CONTAINS | 当日志行包含指定字符串时运行命令钩子 |
ON_VALHEIM_LOG_FILTER_REGEXP | 当日志行匹配正则表达式时运行命令钩子 |
除VALHEIM_LOG_FILTER_EMPTY和VALHEIM_LOG_FILTER_UTF8外,所有环境变量都是前缀,可定义多个匹配条件,例如:
-e VALHEIM_LOG_FILTER_STARTSWITH=foo \ -e VALHEIM_LOG_FILTER_STARTSWITH_BAR=bar \ -e VALHEIM_LOG_FILTER_STARTSWITH_SOMETHING_ELSE="some other filter" -e VALHEIM_LOG_FILTER_CONTAINS_Connected="Got character ZDOID from" -e ON_VALHEIM_LOG_FILTER_CONTAINS_Connected="cat >> /tmp/character_login"
当玩家生成时发送***消息:
-e ***_WEBHOOK="[***]" \ -e VALHEIM_LOG_FILTER_CONTAINS_Spawned="Got character ZDOID from" \ -e ON_VALHEIM_LOG_FILTER_CONTAINS_Spawned='{ read l; l=${l//*ZDOID from /}; l=${l// :*/}; msg="玩家 $l 进入世界"; curl -sfSL -X POST -H "Content-Type: application/json" -d "{\"username\":\"Valheim\",\"content\":\"$msg\"}" "$***_WEBHOOK"; }'
关于在环境变量和compose文件中的正确引用方式,参见下面的***通知。
如果运行ValheimPlus且此过滤器触发两次,请检查ValheimPlus此问题,原因是BepInEx.cfg配置错误导致日志行重复。
以下环境变量可用于在特定事件发生时执行命令。
| 名称 | 默认值 | 用途 |
|---|---|---|
PRE_SUPERVISOR_HOOK | 在supervisord运行前执行的命令,启动会阻塞直到命令返回。 | |
PRE_BOOTSTRAP_HOOK | 在引导前执行的命令,启动会阻塞直到命令返回。 | |
POST_BOOTSTRAP_HOOK | 在引导后、服务器或任何服务启动前执行的命令,可用于安装额外软件包或执行系统设置,启动会阻塞直到命令返回。 | |
PRE_BACKUP_HOOK | 在创建备份前执行的命令,@BACKUP_FILE@会替换为备份ZIP文件的完整路径,备份会阻塞直到命令返回。 | |
POST_BACKUP_HOOK | 在创建备份后执行的命令,@BACKUP_FILE@会替换为备份ZIP文件的完整路径,备份会阻塞直到命令返回,详见将备份复制到其他位置。 | |
PRE_UPDATE_CHECK_HOOK | 在执行更新检查前执行的命令,当前更新会阻塞直到命令返回。 | |
POST_UPDATE_CHECK_HOOK | 在执行更新检查后执行的命令,后续更新会阻塞直到命令返回。 | |
PRE_START_HOOK | 在valheim-updater首次启动服务器前执行的命令,当前启动会阻塞直到命令返回。 | |
POST_START_HOOK | 在valheim-updater首次启动服务器后执行的命令,后续重启和更新检查会阻塞直到命令返回。 | |
PRE_RESTART_HOOK | 在valheim-updater执行服务器重启前执行的命令,当前重启会阻塞直到命令返回。 | |
PRE_SERVER_LISTENING_HOOK | 在服务器运行后、能够接受连接前执行的命令,检查连接状态的循环会阻塞直到命令返回。 | |
POST_SERVER_LISTENING_HOOK | 在服务器 |
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429