Skip to content

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:

yaml
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:

terminal
mkdir -p addonsdocker compose up -d

Add an add-on

Each add-on is a subfolder with its manifest.json at the top:

text
addons/  pixel-pets/    manifest.json    icon.svg    app/      index.html      app.js      budvo-sdk.js  theme-lagoon/    manifest.json    theme.json
  1. Copy the add-on's folder into addons. Keep the folder name the same as the add-on's id.
  2. In the dashboard, open Settings, then Marketplace, and press Rescan. Budvo also reads the folder every time it starts.
  3. The add-on shows up with a Sideloaded badge. New sideloaded app@1 add-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:

terminal
npx budvo-addon validate addons/pixel-pets

If 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:

  1. Replace the add-on's files (or edit them, while you're building one).
  2. Bump version in manifest.json so you can tell which one is running.
  3. 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.