Can You Host Foundry VTT on an Ubuntu Server? A Complete Self-Hosting Guide
Yes, you can host Foundry VTT on an Ubuntu server — and for most game masters running regular online sessions, it is the most reliable way to do it. Foundry Virtual Tabletop is a self-hostable application built on Node.js, which means it runs comfortably on a standard Ubuntu Linux box. Once you install Node.js, drop in the Foundry application, point a domain at it, and add HTTPS, your players can connect from anywhere with nothing more than a browser.
This guide walks through the full process: the requirements, a clean Node.js + Foundry install, running it 24/7 as a systemd service, and exposing it securely to the internet with an Nginx reverse proxy and a free Let’s Encrypt SSL certificate.
Key Takeaways
• Foundry VTT is self-hostable and runs on Ubuntu via Node.js — no special hosting product required.
• You need a purchased Foundry license, Node.js, and modest RAM/CPU; the app itself is lightweight.
• Run it as a systemd service so it survives reboots and crashes and stays online 24/7.
• Use Nginx as a reverse proxy with Let’s Encrypt to serve Foundry over standard HTTPS on port 443.
• A VPS beats home hosting for uptime, a stable public URL, and keeping your home IP private.
What Is Foundry VTT and Why Self-Host It?
Foundry Virtual Tabletop (Foundry VTT) is a virtual tabletop application for playing tabletop role-playing games online — Dungeons & Dragons, Pathfinder, Call of Cthulhu, and dozens of others through community game systems. It provides shared maps, dynamic lighting, character sheets, dice rolling, audio, and a rich module ecosystem.
What sets Foundry apart from many competitors is its licensing model: you buy the software once and host it yourself. There is no recurring subscription to the developer and no per-player fee. Because the server is a Node.js application, you control where it lives — your laptop, a home server, or a cloud VPS.
Self-hosting on a server gives you three things a casual setup cannot:
- Persistent uptime so the game is always reachable, even when your own computer is off.
- A stable public URL players can bookmark instead of a changing home IP address.
- Privacy and safety, because you are not exposing your home network directly to the internet.
What Are the Requirements to Host Foundry VTT on Ubuntu?
Foundry is not resource-hungry. The heavy lifting (rendering maps, lighting) happens in each player’s browser, while the server mostly coordinates state and serves assets. Here is what you need.
| Requirement | Recommended | Notes |
|---|---|---|
| Operating system | Ubuntu Server 22.04 LTS or 24.04 LTS | Any modern Linux works; Ubuntu LTS is well-documented |
| Node.js | Current LTS (Node 20+) | Foundry ships with a recommended Node version per release |
| RAM | 2 GB minimum, 4 GB comfortable | Larger worlds and many modules use more |
| CPU | 1–2 vCPU | Foundry is light; bandwidth matters more than raw CPU |
| Storage | 20 GB+ SSD | Maps, audio, and modules add up quickly |
| Foundry license | Required | Purchase from the official Foundry VTT website |
| Domain name | Recommended | Needed for clean HTTPS and easy player access |
| Open port | 30000 (or 443 via proxy) | Proxying to 443 is cleaner and more secure |
The single non-optional purchase is the Foundry license. The application download is tied to your account, and you retrieve a timed download link from your license page to pull the build onto the server.
How Do You Install Node.js and Foundry on Ubuntu?
Start by updating the system and installing Node.js. Using the NodeSource repository gives you a current LTS build:
“`bash
sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash – sudo apt install -y nodejs unzip
node –version npm –version “`
Next, create a dedicated directory layout. Keeping the application and the user data in separate folders is a Foundry best practice — it makes upgrades painless because you only replace the application folder.
“`bash
mkdir -p ~/foundryvtt mkdir -p ~/foundrydata cd ~/foundryvtt “`
Now download Foundry. On your license page, choose the Linux/Node.js build and copy the timed download URL (it expires quickly, so grab it just before this step). Paste it into the command below:
“`bash
wget -O foundryvtt.zip “PASTE_YOUR_TIMED_DOWNLOAD_URL_HERE”
unzip foundryvtt.zip rm foundryvtt.zip “`
Launch Foundry once manually to confirm it works, pointing it at your separate data directory:
“`bash node ~/foundryvtt/resources/app/main.js –dataPath=/home/$USER/foundrydata “`
You should see Foundry report that the server is listening on port 30000. Press `Ctrl+C` to stop it for now — next we make it permanent.
How Do You Run Foundry VTT 24/7 With systemd?
Running Foundry from a terminal stops the moment you log out. To keep it online around the clock, register it as a systemd service so it starts on boot and restarts automatically after a crash or reboot.
Create the service file:
“`bash sudo nano /etc/systemd/system/foundry.service “`
Paste the following, adjusting the username and paths to match your setup:
“`ini [Unit] Description=Foundry Virtual Tabletop After=network.target
[Service] Type=simple User=foundry WorkingDirectory=/home/foundry/foundryvtt ExecStart=/usr/bin/node /home/foundry/foundryvtt/resources/app/main.js –dataPath=/home/foundry/foundrydata Restart=on-failure RestartSec=5
[Install] WantedBy=multi-user.target “`
Enable and start the service:
“`bash sudo systemctl daemon-reload sudo systemctl enable –now foundry sudo systemctl status foundry “`
A `running` status means Foundry now survives reboots and relaunches itself if it ever fails. Check live logs anytime with `journalctl -u foundry -f`.
The real reason to put Foundry on a VPS isn’t horsepower — it’s the network. A VPS gives you a fixed public IP and a domain you can point at it, so your game URL never changes the way a home connection’s address does. Pair that with a reverse proxy and your players connect over plain `https://yourgame.example.com` — no custom port in the URL, no “what’s the IP tonight?” messages, and no exposing your home router to the public internet. The server’s job in Foundry is coordination and asset delivery, so a stable, low-latency uplink matters far more than a fast CPU.
How Do You Add a Domain, Nginx Reverse Proxy, and HTTPS?
Right now Foundry answers on port 30000 over unencrypted HTTP. To serve it on a clean domain over HTTPS (port 443), put Nginx in front of it as a reverse proxy and issue a free certificate with Let’s Encrypt.
First, point your domain’s A record at the server’s public IP. Then install Nginx and Certbot:
“`bash sudo apt install -y nginx certbot python3-certbot-nginx “`
Create an Nginx site configuration for your domain:
“`bash sudo nano /etc/nginx/sites-available/foundry “`
“`nginx server { listen 80; server_name yourgame.example.com;
client_max_body_size 300M;
location / { proxy_pass http://127.0.0.1:30000; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “upgrade”; } } “`
The WebSocket headers are essential — Foundry relies on a persistent socket connection, and the proxy will fail silently without them. Enable the site and reload Nginx:
“`bash sudo ln -s /etc/nginx/sites-available/foundry /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx “`
Now issue the SSL certificate. Certbot edits your Nginx config automatically and sets up renewal:
“`bash sudo certbot –nginx -d yourgame.example.com “`
Certbot redirects HTTP to HTTPS and renews the certificate on a timer, so you never touch it again. Finally, lock down the firewall: allow HTTP/HTTPS and SSH, and do not expose port 30000 publicly since traffic now flows through Nginx.
“`bash sudo ufw allow OpenSSH sudo ufw allow ‘Nginx Full’ sudo ufw enable “`
One last step inside Foundry: open Configuration → Setup, set the proxy SSL option to enabled and the proxy port to 443 so Foundry generates correct HTTPS links for invites.
Why Does a VPS Beat Hosting Foundry at Home?
You *can* run Foundry on a home PC, but a VPS solves the problems that quietly ruin online game nights:
- Uptime: A VPS runs 24/7 in a data center. Your home machine sleeping, rebooting for updates, or losing power ends the session.
- Public access: Most home internet uses dynamic IPs and NAT/CGNAT, which make a stable public address difficult. A VPS has a fixed public IP out of the box.
- No home IP exposure: Port-forwarding Foundry on a home router advertises your home IP address to every player and bot scanning the internet. A VPS keeps your personal network private.
- Bandwidth and latency: Server-grade uplinks handle multiple players and large map uploads far better than a typical residential upload speed.
What about backups and upgrades?
Because your data directory is separate from the application, upgrades are simple: stop the service, replace the `foundryvtt` application folder with the new build, and restart. Back up the `foundrydata` directory regularly — it holds your worlds, modules, and assets.
Run Foundry VTT on a DarazHost Linux SSD VPS
Self-hosting Foundry is only as reliable as the server beneath it. DarazHost Linux SSD VPS plans are built for exactly this kind of always-on workload:
- Ubuntu with full root access so you can install Node.js, Nginx, and systemd services exactly as shown above.
- Right-sized RAM and CPU to run Foundry VTT 24/7 with room for modules and multiple players.
- A public IP, domain support, and SSL so your players connect over clean HTTPS — no home IP exposure.
- A reliable, low-latency network for smooth map loads and responsive sessions.
- 24/7 support if you get stuck on a service file, proxy config, or certificate.
gives you the stable public URL and uptime a home connection simply cannot match — spin one up, follow this guide, and your table is online in under an hour.
Frequently Asked Questions
Do I need a Foundry VTT license to self-host it?
Yes. Foundry is paid software with a one-time license purchase. You self-host the application you own, but you must buy it first from the official Foundry VTT website and download the Linux/Node.js build from your account’s license page.
Can players connect without installing anything?
Yes. Once Foundry is online behind HTTPS, players join through a standard web browser using your domain — for example `https://yourgame.example.com`. Only the game master needs the server; players need nothing beyond a modern browser.
Why use Nginx instead of just opening port 30000?
A reverse proxy lets you serve Foundry over standard HTTPS on port 443 with a clean domain and a trusted Let’s Encrypt certificate. It also hides the application port, centralizes TLS, and produces share links without an unusual port number — friendlier and more secure for players.
How much RAM and CPU does Foundry really need?
Foundry is lightweight on the server side because rendering happens in each player’s browser. 2 GB of RAM and 1–2 vCPUs handle most groups comfortably; larger worlds with many modules and assets benefit from 4 GB. Network quality usually matters more than raw compute.
Will Foundry stay running after a server reboot?
Yes, if you configure it as a systemd service as shown above. With `Restart=on-failure` and `systemctl enable`, Foundry launches on boot and relaunches itself after a crash, keeping your table available 24/7.