FoundryVTT
Foundry VTT 是一个独立的应用程序,专为体验多人桌面角色扮演游戏而构建,它使用功能丰富且现代的自托管应用程序,玩家可以直接通过浏览器连接。
Foundry VTT 是 专有软件。使用该软件前必须购买付费许可证。
这些说明展示了在 Arch Linux 系统中安装 Foundry VTT 的一种可能方法。过程结束时,应该可以使用 安全连接 从浏览器访问该服务。
安装
要求
在安装 Foundry VTT 之前,您应该已安装可正常工作的 nginx 和 Node.js。
创建目录
首先,创建这些目录以安装软件及其数据。 例如,您可以在 /home 下创建这些目录
# mkdir -p /home/foundry/{foundryvtt,foundrydata}
创建系统用户
Foundry VTT 将由系统用户运行。 首先,创建一个系统用户,名称为 foundry 或任何其他名称。
# useradd -r -s /usr/bin/nologin foundry
下载
在 foundryvtt.com 注册并购买许可证后,您需要转到个人资料页面的 “Purchased Software Licenses” 部分。 在那里您将看到该软件的不同软件包。 您需要下载 Node.js 版本。
您可能会注意到下载页面上下载链接旁边有一个小的 “链条” 链接图标。 单击此链条图标会生成一个临时链接,该链接可用于通过终端或 shell 界面使用 wget 下载 Foundry VTT。
使用 wget 等命令行实用程序下载链接时,务必将链接用双引号括起来。 这确保命令可以正确读取链接。 例如
# wget -O foundryvtt.zip "https://your-download-link-from-foundry-vtt.com-here/"
下载的文件必须解压缩到您之前创建的 foundryvtt 目录中。 填充此目录后,您需要设置正确的权限
# unzip foundryvtt.zip -d /home/foundry/foundryvtt # chown -R foundry:foundry /home/foundry/foundryvtt # chown -R foundry:foundry /home/foundry/foundrydata
当使用来自 AUR 的 foundryvttAUR 软件包时,也需要此存档。
用法
在没有代理的情况下运行软件
现在您可以测试软件是否正常工作。 以用户 foundry 身份运行服务器
# su - foundry -s /bin/bash -c "node foundryvtt/resources/app/main.js --dataPath=/home/foundry/foundrydata"
在它运行时,您应该能够使用端口 30000 从浏览器连接到服务器。 如果您愿意,您现在可以设置管理员密码并保存您的许可证密钥。
现在使用 Ctrl+c
停止服务器。
创建服务
运行该软件的方法之一是使用 systemd#Writing unit files。 您可以为 Foundry VTT 创建一个简单的服务
[Unit] Description=Foundry VTT [Service] Type=simple ExecStart=node /home/foundry/foundryvtt/resources/app/main.js --dataPath=/home/foundry/foundrydata Restart=on-failure User=foundry [Install] WantedBy=multi-user.target
正如 安装说明 中建议的那样,编辑软件选项以使其可以通过代理服务器访问
设置以下选项,保留其他选项,其中 hostname 例如 a.domain.tld
/home/foundry/foundrydata/Config/options.json
"hostname": "hostname", "routePrefix": null, "sslCert": null, "sslKey": null, "port": 30000, "proxyPort": 443, "proxySSL": true
配置 nginx
要为 Foundry VTT 配置 nginx 代理服务器,您可以使用官方文档中的此示例
# This goes in a file within /etc/nginx/sites-available/. By convention, # the filename would be either "your.domain.com" or "foundryvtt", but it # really does not matter as long as it's unique and descriptive for you. # Define Server server { # Enter your fully qualified domain name or leave blank server_name your.hostname.com; # Listen on port 443 using SSL certificates listen 443 ssl; listen [::]:443 ssl; ssl_certificate "/etc/letsencrypt/live/your.hostname.com/fullchain.pem"; ssl_certificate_key "/etc/letsencrypt/live/your.hostname.com/privkey.pem"; # Sets the Max Upload size to 300 MB client_max_body_size 300M; # Proxy Requests to Foundry VTT location / { # Set proxy headers proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # These are important to support WebSockets proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; # Make sure to set your Foundry VTT port number proxy_pass https://127.0.0.1:30000; } } # Optional, but recommend. Redirects all HTTP requests to HTTPS for you server { if ($host = your.hostname.com) { return 301 https://$host$request_uri; } listen 80; listen [::]:80; server_name your.hostname.com; return 404; }
您可以使用 certbot 获取您的证书。
运行服务
现在启动/启用 foundryvtt.service
和 nginx.service
。
此时,您应该能够通过将 浏览器 指向之前设置的 hostname 来访问该服务。