In Foundry Virtual Tabletop, a game session has one host and several clients. In order to enjoy a multi-player gaming experience the clients must be able to connect to the host which is running the tabletop software.


Hosting Options and Comparison

There are three main modes to host a Foundry server: Self-Hosted, Cloud Hosted, and Partner Hosted. Each has its own pros and cons, which will be outlined in the following section.

Self Hosted

In a self-hosted configuration, Foundry runs on your own computer or another computer on your local home network, usually using the pre-packaged Electron app. Players then connect directly to that computer in order to play the game. The self-hosted mode is most similar to the setup of Fantasy Grounds, Maptool, or Arkenforge.

Pros

Cons

Summary

This is likely the most common setup for Foundry users. If you're budget-conscious and don't mind working with your home network equipment. The biggest limiting factor is likely going to be your internet connection - if you don't have a lot of bandwidth, or have a restrictive ISP, you may want to explore other options.

Cloud Hosted

In a cloud hosted configuration, Foundry runs on a dedicated server in a datacenter or other colocation facility. The GM and all players connect via a web browser to a persistant server running the Node.js version of the app. This hosting mode is closer to Roll20 or Astral Tabletop, but with additional setup required.

Pros

Cons

Summary

Cloud hosting is more powerful and more flexible than self hosting, but there are charges involved with those advantages. A certain level of knowledge regarding setting up web-based applications, or a willingness to learn, is required. Additionally, cloud hosting may require additional work to maximize returns on your expenses.

Partner Hosted

Foundry has official hosting partners that will run Foundry on dedicated web hosts. While these are still currently in active development, this is the option closest to Roll20 or Astral from a setup point of view.

Pros

Cons

Summary

If you're looking for most of the advantages that cloud hosting provides, but want setup of the software to be simpler, partner hosting is likely your best bet. While they don't offer all of the flexibility that self hosting or cloud hosting provides, they eliminate steps between you and getting your game up and running.


Self-Hosted Configuration

In a self-hosted configuration, you will need to ensure that clients can connect to your PC using your IP address. There are multiple ways to achieve this and you can use a combination of approaches for different players. By default, Foundry Virtual Tabletop runs on port 30000.

For all self-hosted configuration models you will need to be sure that your local operating system firewall is not blocking network traffic for the application. For Windows users, you should be prompted to allow (or deny) a firewall exception when the Foundry VTT application is first started. If you have followed other steps to allow connectivity but users are still unable to connect, be sure to check your Firewall rules.

Local Area Network

If your players are on the same network as you, they should be able to connect to your computer using your local IP address. To discover your own local IP address: for Windows check your Connection Settings or use ipconfig from the Command Prompt, for Mac look at Network Settings under System Preferences or use ipconfig in your Terminal, for Linux use hostname -i. Local network players should connect to your local

IP address and port, for example http://x.x.x.x:30000.

Port Forwarding

If your players are connecting over the internet, they will use your public IP address. Use a site like http://whatismyip.host/ to easily discover your public IP address. In order for this to work, you will need to forward web traffic for your local network to send the Foundry VTT port to your computer's local IP address. This step is required in order for your network to know where to send the connection.

Port forwarding can be intimidating for some users, but it is the recommended approach as it is more secure than other options. The exact steps to implement port forwarding will depend on your network configuration and hardware. Most frequently, port forwarding is done within your router configuration interface. The website https://portforward.com/ has general instructions for the most common router configurations. Once the port is forwarded corretly players can connect to your public IP address in the browser http://x.x.x.x:30000.

Virtual Private Network

If your players are remote but port forwarding is not an option, a third option can be to use a VPN service. Please be aware - if you find yourself in this situation, the dedicated hosting option may be a better choice for you. With a virtual private network, other users will have access to details about your computer as well as any content (like documents or pictures) that you are sharing with your local network. If you do choose to go down this route, however, services like Hamachi (https://www.vpn.net/) can create a virtual network - once inside a VPN your players can connect to your session using the above instructions for Local Area Network.

For self-hosted installation simply download the zipped application which is suitable for your operating system and extract the archive into a directory of your choice. The first time starting the application under a self-hosted configuration, you may be prompted by your operating system for permission to allow the application to interact with the external network. Be sure to allow this permission otherwise network traffic may be blocked by your operating system firewall.


Dedicated Configuration

To configure Foundry Virtual Tabletop for a dedicated server configuration there are a few simple steps to follow. Firstly you will need to create a server instance on which you want to host the Foundry VTT application. Secondly you will need to install Node.js and the Foundry VTT software.

Launch a Server Instance

The configuration for a dedicated server will vary somewhat depending on your hosting platform and networking requirements. This section provides a simple configuration example for running the server using an AWS instance (https://aws.amazon.com/ec2/). Foundry Virtual Tabletop can work even with a t2.micro size instance which is supported by the free tier program which is an easy way to begin trying out the software.

To get started, launch a t2.micro (or larger) instance using the Linux distribution of your choice. These instructions are for the standard Amazon Linux AMI. Configure the inbound rules for your instance security group using the AWS dashboard to allow inbound traffic using a Custom TPC Rule for port 30000 (or a different port of your choice). Lastly, connect to your new host via SSH. You will need to configure your SSH client to use the security key-pair provided by AWS.

Install Software

To get started with Foundry VTT, you will need to install Node.js which is used to host the server.

Note that a relatively modern version of Node.js is required in order to support various security features which are required by the application. Please use Node.js version 12.x or newer.

For Red Hat / Amazon Linux

sudo yum install -y openssl-devel
curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install -y nodejs

For Debian / Ubuntu

sudo apt install -y libssl-dev
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt install -y nodejs

Once Node.js is installed, next download and extract the latest Foundry Virtual Tabletop Linux version from Patreon. The following commands will create an application directory and a sibling user data directory.

To install the software using wget you will need to acquire a temporary download token from your user profile page on the Foundry website. On the Purchased Licenses page, click the link icon to the right of the standard download link to obtain a temporary download url for the software.

# Create application and user data directories
cd $HOME
mkdir foundryvtt
mkdir foundrydata

# Install the software
cd foundryvtt
wget -O foundryvtt.zip "<foundry-website-download-url>"
unzip foundryvtt.zip

# Start running the server
node resources/app/main.js --dataPath=$HOME/foundrydata

For MacOS

Foundry VTT is also supported as a native application on macOS using Electron, however if you wish to host the software using Node.js directly, this is also an option in the MacOS environment. Simply visit https://nodejs.org/en/download/ and download the macOS installer. Node is installed on your system, you can run the server using the instructions in the below section via your Mac terminal.

For Windows

Note that you can run a dedicated server from Windows also, for Windows you should download and install node.js from https://nodejs.org/en/download/.


For next steps, once the Foundry Virtual Tabletop software is installed see Application Configuration.