Sideloading
Sideloading means putting an add-on on your server yourself instead of installing it from the marketplace. It's how you try your own add-ons, and how you run ones that aren't published. Sideloaded add-ons aren't signed: putting files on your own server is your decision, and Budvo marks them Sideloaded so you always know.
Set up the add-ons folder
Budvo reads add-ons from the folder in BUDVO_ADDONS_DIR. The Docker image uses /addons, so mount a folder there. Next to your data folder is a good place:
services: budvo: image: git.ronniie.com/nulldaily/budvo:latest volumes: - ./data:/data - ./addons:/addons:ro:ro mounts it read-only: Budvo only reads add-ons, never writes them. Apply the change the usual way:
mkdir -p addonsdocker compose up -dAdd an add-on
Each add-on is a subfolder with its manifest.json at the top:
addons/ pixel-pets/ manifest.json icon.svg app/ index.html app.js budvo-sdk.js theme-lagoon/ manifest.json theme.json- Copy the add-on's folder into
addons. Keep the folder name the same as the add-on'sid. - In the dashboard, open Settings, then Marketplace, and press Rescan. Budvo also reads the folder every time it starts.
- The add-on shows up with a Sideloaded badge. New sideloaded
app@1add-ons start switched off: read the permissions it asks for, including any pledge limit and network hosts, then turn it on.
Check an add-on before you copy it:
npx budvo-addon validate addons/pixel-petsIf Budvo can't load an add-on, for example because its compat.budvo range doesn't include your server's version, it leaves it off and says why.
Updates
Budvo reads the add-ons folder when it starts and when you press Rescan, so updating is changing files:
- Replace the add-on's files (or edit them, while you're building one).
- Bump
versioninmanifest.jsonso you can tell which one is running. - Press Rescan, then reload the add-on's page.
Budvo doesn't update sideloaded add-ons for you: what's in the folder is what runs.
Replacing a marketplace add-on
A sideloaded add-on with the same id as a marketplace one takes its place. That's handy for testing a fix to your published add-on on your own server before you publish it. Remove the folder and press Rescan when you are done.
Removing one
Delete its folder and press Rescan.
While you're building
You don't need a server to build an add-on: npx budvo-addon dev my-addon runs it in a local stand-in for Budvo with made-up money. Sideload it when you want to see it with your real household, in the real dashboard and the iOS app.