# Porting to a remote Foundry server ## First install Stop Foundry, then clone into the data directory: ```bash cd /path/to/foundrydata/Data/systems git clone https://gitea.timevans.uk/slaguru666/RingBRP.git ringbrp ``` Start Foundry. **The Custodians** appears under Game Systems. Create a world with it. Nothing else is required: `packs/` holds the built compendia, and the system has no runtime dependencies. `node_modules/` is deliberately absent and is only needed to *rebuild* content. ## Updating a deployed server ```bash # STOP Foundry first if the update touches packs/ — LevelDB will not tolerate its # files changing underneath a running server. cd /path/to/foundrydata/Data/systems/ringbrp git pull ``` Then start Foundry. Existing worlds keep their actors and items; compendium content is replaced by the pull. ## Rebuilding content on the server (optional) Only if you intend to edit the catalogue there: ```bash npm install # classic-level, for writing LevelDB npm run check # the three guards npm run build # rebuilds packs/ node tools/make-icons.mjs # redraws all icons node tools/make-dice-textures.mjs # regenerates the Dice So Nice textures ``` `npm run build` runs the guards first and aborts if any fails, so a broken catalogue cannot be written into the packs. ## Manifest URL For Foundry's *Install System → Manifest URL*: ``` https://gitea.timevans.uk/slaguru666/RingBRP/raw/branch/main/system.json ``` If the repository is private, Foundry cannot fetch that URL — clone over SSH or an access token instead, or make the repo public. ## Version bumps `system.json` carries `version`. Foundry only offers an update when that number rises, so bump it before pushing anything a remote server should pick up. ## Health check after deploying Open any character sheet. If labels read as raw keys (`RINGBRP.Sheet.Style` rather than "Marksmanship"), the localisation file failed to load — run `node tools/check-lang.mjs`, which exists precisely because one bad key silently un-localises the entire system with no error a user would connect to the cause.