Installing Foundry VTT on Your Server
Step-by-step guide to installing Foundry VTT on a dedicated server, including the critical application/data directory separation.
Overview
Foundry VTT is a Node.js application — not a game server and not a SteamCMD title. Installation involves placing the application files in one location and your user data in a completely separate location. This separation is the most important architectural concept to understand before you begin; it is what allows you to update or roll back the application without ever touching your worlds, modules, or system packages.
Prerequisites
- A purchased Foundry VTT license (~$50 one-time, from foundryvtt.com)
- Node.js installed on the server
- At least 2 GB RAM (4 GB recommended)
Node.js Version Requirements
Foundry requires a specific Node.js version depending on which version of Foundry you are running:
- Foundry v14: Node.js 24
- Foundry v10–v13: Node.js 20–22
- Minimum supported: Node.js 20.18
Verify your installed version before proceeding:
node --version
If you need to install or update Node.js, use your distribution's package manager or nvm.
Directory Structure
Set up two completely separate directories before placing any files:
/foundry-app/ ← application files only — replaceable on every update
/foundry-data/ ← your user data — NEVER delete this directory
This separation is non-negotiable. When you update Foundry, you replace /foundry-app/ entirely. The /foundry-data/ directory is never touched during updates. Mixing these two directories together is the single most common source of data loss during major version upgrades.
Installation Steps
1. Create directories:
mkdir -p /foundry-app
mkdir -p /foundry-data
2. Download Foundry VTT:
Log in to foundryvtt.com, go to your account, and navigate to "Purchased Licenses". Download the Node.js .zip for your platform. Do not download the Windows or macOS installer — you want the Node.js zip.
3. Extract the application files:
cd /foundry-app
unzip foundryvtt-<version>.zip
After extraction, confirm main.mjs is present at /foundry-app/main.mjs.
4. Start the server for the first time:
node /foundry-app/main.mjs --dataPath=/foundry-data
Foundry will create the following structure inside /foundry-data/ automatically on first run:
/foundry-data/
Config/
options.json
Data/
worlds/
systems/
modules/
Logs/
5. Access the Setup screen:
Open a browser and navigate to http://<your-server-ip>:30000. You will be presented with the license activation screen. See Activating Your Foundry VTT License for the next steps.
Running as a Service
For production use, Foundry should be managed by a process manager or run inside a Pterodactyl/WISP container so it restarts automatically. If you are using a panel, the egg handles this. For bare-metal installations, configure a systemd service that executes:
node /foundry-app/main.mjs --dataPath=/foundry-data
Key Points
- Never delete
/foundry-data/— this is your worlds, modules, and configuration /foundry-app/is disposable and can be replaced at any time- Default listening port is TCP 30000 (no UDP required)
- One license covers one server instance with unlimited concurrent players