Skip to content
foundry-ops docs

How it works

Foundry VTT is paid software, so foundry-ops never contains, caches, mirrors or redistributes any part of it. You supply the download, a Timed URL from your own license page or a zip you already have, and the scripts handle it with care:

  • The scripts are written never to save the Timed URL to disk or to logs. It goes to the download on its standard input, not on the command line.
  • The zip and the unpacked files are deleted as soon as Foundry is in place.
  • The project’s checks reject archives, Foundry app files and Foundry download links in its own source.

foundry-ops follows the layout of the community-scripts Proxmox VE scripts and uses their engine. That gives it container creation, the storage and network questions, the update command and the Node.js setup. The cost is that the engine’s code runs as root on your host, like any community-scripts installer.

  • Pinned engine. foundry-ops uses one tested version of the engine, not its latest code, which changes without notice. The update command in the container uses the same version. It moves to a newer version only after a test install and update.
  • Fetched from foundry-ops. The engine looks for the install script and the update command in foundry-ops, not in the community-scripts collection.
  • Marked as foundry-ops. The engine labels every container as an official community-scripts one. Right after creating it, foundry-ops replaces that with its own: the container’s notes in Proxmox, its tags and the login banner point to foundry-ops, so problems are reported to foundry-ops and not to community-scripts.

foundry-ops is not an official community-scripts script.

A Timed URL is valid for 5 minutes, so the slow steps (creating the container, updating its packages, installing the basics) all run before the installer asks for it, and the download starts right after you paste it. Node.js is installed after the download, because the right version depends on the Foundry version in the package.

foundry-ops reads the Foundry version, and the Node.js version it needs, from the package’s package.json. It has been checked against the Foundry 14 Linux package (build 368). The Node.js package for Foundry 14 and the packages for Foundry 12 and 13 have not been checked yet; the scripts fall back to a version table for them.