本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

!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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429