Layout
Everything foundry-ops sets up lives in a few places inside the container.
| Path | What |
|---|---|
/opt/foundryvtt/app |
Foundry itself, owned by the foundry user so Foundry’s in-app updater can work. |
/opt/foundryvtt/app.prev |
The version before the last update, for a rollback. |
/opt/foundryvtt/run.sh |
The launcher. It finds Foundry’s main.js each time it starts, since its location moved between Foundry versions. |
/opt/foundryvtt/version |
The version installed by foundry-ops. |
/var/lib/foundryvtt |
Your user data (Foundry’s --dataPath): Data/, Config/ and Logs/. |
/var/backups/foundryvtt |
User data archives made by update. |
User data sits apart from the app, so you can mount it separately if you like.
The service
Section titled “The service”Foundry runs as foundryvtt.service, a systemd unit, under the foundry system user. That user has no login shell and no sudo. The service starts at boot, restarts if Foundry exits with an error, and can’t gain new privileges. Foundry listens on port 30000.
systemctl status foundryvtt # is it running?systemctl restart foundryvtt # restart itjournalctl -u foundryvtt # its logFoundry’s in-app updater
Section titled “Foundry’s in-app updater”Because the foundry user owns /opt/foundryvtt/app and the launcher finds main.js at each start, Foundry’s own updater should work too. That hasn’t been confirmed across a real update yet. An update made that way doesn’t change /opt/foundryvtt/version, keep a previous version or archive your data; update does.