
theoriginalbrian/phvalheim-server!PhValheim
PhValheim是一个Valheim世界和模组管理系统,通过服务器+客户端架构确保服务器和所有玩家的模组配置完全同步。部署带有任何Thunderstore模组组合的世界,每个玩家连接时都会自动获取完全相同的文件,消除"你使用的是哪个版本"的困扰。
为Valheim安装模组很容易,但要在服务器和每个玩家之间保持模组完全同步几乎是不可能的。像Thunderstore这样的模组管理器在个人使用时效果很好,但它们无法在团队中协调——最终总会有人的客户端与服务器不同步,导致会话中断。
PhValheim是一个两部分系统(服务器+客户端),它将服务器和客户端的模组配置锁定在一起。部署带有任何Thunderstore模组组合的世界,每个玩家连接时都会自动获取完全相同的文件,不再需要"你使用的是哪个版本"的对话。
| 功能 | 描述 |
|---|---|
| 一键部署世界 | 点击按钮即可部署具有任何Thunderstore模组组合的独特Valheim世界。 |
| 自动模组同步 | 服务器和客户端模组保持同步,玩家始终拥有正确的文件。 |
| 设置向导 | 引导式首次运行配置——只需启动容器并按照步骤操作,无需环境变量。 |
| Steam认证 | 玩家使用Steam账户登录,每个世界的访问控制列表管理谁可以查看和加入每个世界。 |
| Thunderstore集成 | 每12小时同步完整的Thunderstore模组目录,内置依赖解析功能,可搜索、选择和部署模组。 |
| 自动备份 | 所有世界每30分钟备份一次,可配置保留策略,支持单独的备份卷用于灾难恢复。 |
| 实时监控 | 每个运行中世界的实时CPU、内存和负载指标,在管理和公共UI中都可见。 |
| AI助手 | 内置AI驱动的日志分析(OpenAI、Gemini、Claude或自托管Ollama),识别模组错误、缺失依赖项和服务器健康问题。 |
| 自定义配置 | 推送自定义配置文件到客户端,或保留跨更新的服务器专用配置。 |
| 单一容器 | 所有组件(NGINX、PHP、MariaDB、Supervisor和PhValheim引擎)都在一个Docker容器中运行。 |
PhValheim适用于任何希望运行带有模组的Valheim服务器的用户或团队,特别适合:
yamlservices: phvalheim: image: theoriginalbrian/phvalheim-server:latest container_name: phvalheim ports: - "8080:8080/tcp" # 公共UI - "8081:8081/tcp" # 管理UI(请勿公开暴露) - "25000-26000:25000-26000/udp" # 游戏端口 volumes: - /path/to/data:/opt/stateful:Z - /path/to/backups:/opt/stateful/backups:Z # 理想情况下使用单独的磁盘 restart: unless-stopped
启动容器后,打开[***]——设置向导将引导你完成配置。
bashdocker create \ --name phvalheim \ -p 8080:8080/tcp \ -p 8081:8081/tcp \ -p 25000-26000:25000-26000/udp \ -v /path/to/data:/opt/stateful:Z \ -v /path/to/backups:/opt/stateful/backups:Z \ theoriginalbrian/phvalheim-server:latest docker start phvalheim
在Community Apps商店中搜索PhValheim。
所有设置在首次启动后通过管理UI配置,新安装不需要环境变量。
从旧版本升级? 首次启动时,您现有的环境变量将自动迁移到数据库。一次性迁移通知将确认导入的值。
| 设置 | 描述 |
|---|---|
| Steam API Key | 必需,用于玩家认证。在此获取。 |
| PhValheim Host | Web UI的公共FQDN。 |
| Game DNS | 玩家用于连接游戏服务器的DNS名称,可以与PhValheim Host相同。 |
| Base Port | 世界的第一个UDP端口(必须与容器的端口范围匹配)。 |
| Backups to Keep | 每个世界保留的备份快照数量。 |
| Client Download URL | PhValheim客户端安装程序的URL。 |
在服务器设置中配置一个或多个AI提供商,以启用内置的日志分析助手。
| 提供商 | 所需信息 |
|---|---|
| OpenAI | API密钥——启用GPT-4o模型 |
| Google Gemini | API密钥——启用Gemini 2.0 Flash和Gemini 1.5 Pro |
| Anthropic Claude | API密钥——启用Claude Haiku 4.5和Claude Sonnet 4.5 |
| Ollama | 自托管实例的URL——自动检测模型 |
| 容器路径 | 用途 |
|---|---|
/opt/stateful | 所有持久数据——世界、模组、数据库、配置。 |
/opt/stateful/backups | 世界备份,将此指向单独的磁盘以确保安全。 |
| 端口 | 用途 |
|---|---|
8080/tcp | 公共Web UI——向玩家公开此端口。 |
8081/tcp | 管理Web UI——保持此端口私有。 |
25000-26000/udp | Valheim世界的游戏服务器端口范围。 |
服务器只是系统的一半。PhValheim客户端是一个配套Windows应用程序,它注册了自定义的phvalheim:// URL协议。当玩家点击启动链接时:
客户端文件安装到%appdata%/PhValheim,并将BepInEx引导程序添加到Valheim Steam目录。
客户端仓库: brianmiller/phvalheim-client
!PhValheim Architecture
!PhValheim Steam Auth
每个世界的访问由PhValheim数据库控制。Steam ID与每个世界相关联,同时控制Web UI(世界可见性)和游戏服务器允许列表。
TLS终止的NGINX配置示例:
nginxserver { listen 80; server_name phvalheim.example.com; return 301 [***] } server { listen 443 ssl; server_name phvalheim.example.com; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_read_timeout 1200s; client_max_body_size 0; } }
| 文件夹 | 行为 |
|---|---|
custom_configs/ | 在世界更新时推送到客户端,用于共享游戏配置。 |
custom_configs_secure/ | 仅服务器使用,跨更新保留但从不发送给客户端。 |
PhValheim使模组管理变得轻松,但并非所有模组都能很好地协同工作。如果遇到崩溃或意外行为,请先部署一个纯 vanilla 世界(无模组)以排除模组冲突。大多数模组问题发生在Valheim重大更新之后。
加入*** · 报告问题 · PhValheim客户端

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务