felddy/foundryvtt一个容器化的Foundry Virtual Tabletop服务器,让您能够在几分钟内启动并运行一个功能完整的虚拟桌面角色扮演游戏平台。这个Docker镜像设计安全、可靠、紧凑且易于使用,只需提供下载Foundry Virtual Tabletop发行版所需的凭据或URL即可。
您可以使用以下命令启动Foundry Virtual Tabletop服务器。容器需要您的foundryvtt.com凭据来安装和授权服务器。
consoledocker run \ --env FOUNDRY_USERNAME='<您的用户名>' \ --env FOUNDRY_PASSWORD='<您的密码>' \ --publish 30000:30000/tcp \ --volume <您的数据目录>:/data \ felddy/foundryvtt:13
[!提示] 如果您使用
bash或类似的shell,考虑在Docker命令前添加一个空格,以防止您的凭据被记录到shell历史列表中。参见:HISTCONTROL
或者,您可以从Foundry网站的用户个人资料页面获取临时下载URL。
已购买软件许可证页面。consoledocker run \ --env FOUNDRY_RELEASE_URL='<临时URL>' \ --publish 30000:30000/tcp \ --volume <您的数据目录>:/data \ felddy/foundryvtt:13
配置选项通过环境变量指定。强烈建议使用docker compose或类似的容器编排工具来管理服务器配置。如下例所示的compose.yml文件是一种可靠的方式来启动和维护容器,同时记录其配置。
每次容器启动时,都会使用环境变量的值生成Foundry Virtual Tabletop所需的配置文件。这意味着在服务器配置GUI中所做的更改不会在容器重启之间保留。如果您想禁用这些配置文件的重新生成,请将CONTAINER_PRESERVE_CONFIG设置为true。
创建一个类似于以下内容的compose.yml文件。提供您的凭据作为环境变量的值:
yaml--- services: foundry: image: felddy/foundryvtt:13 hostname: my_foundry_host volumes: - type: bind source: <您的数据目录> target: /data environment: - FOUNDRY_PASSWORD=<您的密码> - FOUNDRY_USERNAME=<您的用户名> - FOUNDRY_ADMIN_KEY=atropos ports: - target: 30000 published: 30000 protocol: tcp
启动容器并后台运行:
consoledocker compose up --detach
通过以下地址访问Web应用程序: http://localhost:30000。
如果一切顺利,您将看到许可协议提示,然后需要输入通过FOUNDRY_ADMIN_KEY变量设置的"管理员访问密钥"。
此容器还支持通过Docker密钥传递敏感值。使用密钥传递凭据等敏感值比使用环境变量更安全。您的密钥json文件可以有任何名称。本示例使用secrets.json。无论您选择什么名称,都必须像下面的示例中那样将其目标设置为容器内的config.json。有关所有支持的密钥的表格,请参见下面的密钥部分。
要使用密钥,请创建一个包含您要设置的值的secrets.json文件:
json{ "foundry_admin_key": "atropos", "foundry_password": "您的密码", "foundry_username": "您的用户名" }
然后将密钥添加到您的compose.yml文件:
yaml--- secrets: config_json: file: secrets.json services: foundry: image: felddy/foundryvtt:13 hostname: my_foundry_host volumes: - type: bind source: <您的数据目录> target: /data environment: ports: - target: 30000 published: 30000 protocol: tcp secrets: - source: config_json target: config.json
默认情况下,此容器中的Foundry"更新软件"选项卡是禁用的。要升级到新版本的Foundry,请拉取更新的镜像版本。
从Docker Hub拉取新镜像:
consoledocker compose pull
重新创建运行中的容器:
consoledocker compose up --detach
停止运行中的容器:
consoledocker stop <容器ID>
拉取新镜像:
consoledocker pull felddy/foundryvtt:13
按照上面的运行说明重新运行容器。
此容器的镜像使用语义化版本进行标记,与它们支持的Foundry Virtual Tabletop版本和构建保持一致。
[!提示] 建议用户使用主版本标签:
:13。使用主版本标签将确保您获得与保存的数据兼容的最新软件版本,并防止意外升级到新的主版本。
| 镜像标签 | 描述 |
|---|---|
felddy/foundryvtt:13 | 匹配主版本号的最新镜像。大多数用户将使用此标签。 |
felddy/foundryvtt:13.350 | 匹配主版本和次版本号的最新镜像。 |
felddy/foundryvtt:13.350.0 | 精确的镜像版本。 |
felddy/foundryvtt:release | stable通道的最新镜像。这些镜像被认为是稳定的,并且经过充分测试。latest标签始终指向与release相同的版本。 |
felddy/foundryvtt:latest | 与release标签相同。为什么latest等于release? |
有关所有支持的标签列表,请参见Docker Hub上的标签选项卡。
| 挂载点 | 用途 |
|---|---|
/data | 配置、数据和日志存储。 |
此容器公开以下端口:
| 端口 | 用途 |
|---|---|
30000 | Foundry Virtual Tabletop服务器Web界面 |
必须设置以下三种环境变量组合之一,以便容器定位和安装Foundry Virtual Tabletop发行版。尽管可以一起指定所有变量,但它们按以下优先级顺序进行评估:
FOUNDRY_RELEASE_URL,或FOUNDRY_USERNAME和FOUNDRY_PASSWORD,或CONTAINER_CACHE| 名称 | 用途 |
|---|---|
FOUNDRY_PASSWORD | foundryvtt.com的账户密码。下载应用程序发行版时必需。 |
FOUNDRY_USERNAME | foundryvtt.com的账户用户名或电子邮件地址。下载应用程序发行版时必需。 |
注意: FOUNDRY_USERNAME和FOUNDRY_PASSWORD也可以通过使用密钥而不是环境变量来设置。
| 名称 | 用途 |
|---|---|
FOUNDRY_RELEASE_URL | 从用户个人资料生成的预签名URL。下载应用程序发行版时必需。 |
| 名称 | 用途 | 默认值 |
|---|---|---|
CONTAINER_CACHE | 设置缓存Foundry发行版存档的路径,以加快后续容器启动速度。路径应位于容器中的/data或另一个持久挂载点。设置为空字符串""以禁用。注意:当缓存被禁用时,在某些情况下容器可能会休眠而不是退出,以防止下载循环。可以将发行版预下载并放入缓存目录。发行版的名称必须采用以下形式:foundryvtt-13.350.zip | /data/container_cache |
CONTAINER_CACHE_SIZE | 设置缓存中保留的发行版版本的最大数量。最小值为1。当超过限制时,最早的版本(版本号最低)将首先被删除。取消设置以禁用缓存大小管理并保留所有版本。 | |
CONTAINER_PATCHES | 设置一个目录路径,其中包含在Foundry安装后但启动前要源代码化的shell脚本。路径应位于容器中的/data或另一个持久挂载点。例如:/data/container_patches。补丁文件按字典顺序源代码化。CONTAINER_PATCHES在CONTAINER_PATCH_URLS之后处理。 | |
CONTAINER_PATCH_URLS | 设置一个以空格分隔的URL列表,在Foundry安装后但启动前要源代码化。补丁URL按指定顺序源代码化。CONTAINER_PATCH_URLS在CONTAINER_PATCHES之前处理。⚠️ 仅使用来自可信来源的补丁URL! | |
CONTAINER_PRESERVE_CONFIG | 容器通常在每次启动时生成新的options.json和admin.txt文件。将此设置为true可防止容器在这些文件存在时修改它们。如果它们不存在,将正常创建。 | false |
CONTAINER_URL_FETCH_RETRY | 使用指数退避重试获取预签名URL的次数。此行为在持续集成环境中很有用,其中多个并行工作流可能会超过URL生成服务的速率限制。 | 0 |
CONTAINER_VERBOSE | 设置为true以启用容器实用程序脚本的详细日志记录。 | false |
FOUNDRY_ADMIN_KEY | 启动时应用的管理员密码。如果省略,管理员密码将被清除。可以通过使用密钥设置。 | |
FOUNDRY_AWS_CONFIG | 指向awsConfig.json的绝对或相对路径,或设置为true以使用AWS环境变量凭据评估。 | null |
FOUNDRY_COMPRESS_WEBSOCKET | 设置为true以启用通过WebSocket从服务器发送到客户端的数据压缩。建议启用以提高网络性能。 | false |
FOUNDRY_CSS_THEME | 选择设置页面的CSS主题。可选择foundry、fantasy或scifi。 | foundry |
FOUNDRY_DEMO_CONFIG | 演示模式允许您配置一个世界,该世界将按您选择的频率自动启动和重置。当世界重置时,它会被停用。世界的源数据使用提供的.zip文件恢复到原始状态,并自动安排下一次重置。参见:配置演示模式。 | |
FOUNDRY_HOSTNAME | 用于代替主机的公共IP地址的自定义主机名,用于显示游戏会话的地址。这允许反向代理或DNS服务器修改公共地址。 | null |
FOUNDRY_HOT_RELOAD | 设置为true以允许包热重载某些资产,例如CSS、HTML和本地化文件,而无需完全刷新。此设置仅推荐给开发人员。 | false |
FOUNDRY_IP_DISCOVERY | 允许Foundry服务器发现并报告主机的公共IP地址和端口的可访问性。将此设置为false可以减少服务器在发现超时情况下的启动时间。 | true |
FOUNDRY_LANGUAGE | 提供核心翻译文件的默认应用程序语言和模块。 | en.core |
FOUNDRY_LOCAL_HOSTNAME | 覆盖用于邀请链接的本地网络地址,与配置外部地址的FOUNDRY_HOSTNAME选项功能相似。 | null |
FOUNDRY_LICENSE_KEY | 要安装的许可证密钥。例如:AAAA-BBBB-CCCC-DDDD-EEEE-FFFF。如果未设置,使用账户身份验证时将获取许可证密钥。如果一个账户关联多个许可证密钥,将随机选择一个。可以通过传递整数索引来选择特定许可证。第一个许可证密钥为1。可以通过使用密钥设置。 | |
FOUNDRY_MINIFY_STATIC_FILES | 设置为true以通过提供缩小的静态JavaScript和CSS文件来减少网络流量。建议大多数用户启用此设置,但模块开发人员可能希望禁用它。 | false |
FOUNDRY_PASSWORD_SALT | 应用于管理员密码的自定义盐字符串,而不是默认盐字符串。可以通过使用密钥设置。 | null |
FOUNDRY_PROTOCOL | 如果未设置,Foundry VTT将绑定到IPv4和IPv6接口。要仅限制为IPv4,请设置为4。要仅限制为IPv6,请设置为6。 | null |
FOUNDRY_PROXY_PORT | 通知Foundry服务器软件正在反向代理后面的其他端口上运行。这允许创建的游戏邀请链接包含正确的外部端口。 | null |
FOUNDRY_PROXY_SSL | 指示软件是否在使用SSL的反向代理后面运行。这允许邀请链接和音视频功能像Foundry服务器直接配置了SSL一样工作。 | false |
FOUNDRY_ROUTE_PREFIX | 附加到基本主机名的字符串路径,用于从特定命名空间提供Foundry VTT内容。例如,将此设置为demo将导致数据从[***]提供。 | null |
FOUNDRY_SSL_CERT | 指向SSL证书文件的绝对或相对路径,与sslKey选项一起使用以启用SSL和https连接。如果同时提供这两个选项,服务器将自动开始使用HTTPS。 | null |
FOUNDRY_SSL_KEY | 指向SSL密钥文件的绝对或相对路径,与sslCert选项一起使用以启用SSL和https连接。如果同时提供这两个选项,服务器将自动开始使用HTTPS。 | null |
FOUNDRY_TELEMETRY | 设置为true以启用FoundryVTT遥测,设置为false以禁用。此选项允许收集***使用数据以帮助改进FoundryVTT。 | null |
FOUNDRY_UPNP | 允许通用即插即用自动请求将Foundry服务器端口转发到本地网络地址。 | false |
FOUNDRY_UPNP_LEASE_DURATION | 设置通用即插即用租约持续时间,允许为不支持临时租约的路由器设置永久租约。要定义无限租约持续时间,请将值设置为0。 | null |
FOUNDRY_VERSION | 要安装的Foundry Virtual Tabletop版本。 | 13.350 |
FOUNDRY_WORLD | 系统启动时要启动的世界的目录名称。 | null |
TZ | 容器TZ数据库名称 | UTC |
提供给容器的任何Node.js变量(NODE_*)都将传递给运行FoundryVTT的底层Node.js服务器。下面列出了一些特别有用的变量。
| 名称 | 用途 |
|---|---|
NODE_DEBUG | 应以逗号分隔的核心模块列表,这些模块应打印调试信息。 |
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务