A package is a filesystem intended to be installed on other websites. Packages typically hold one or more apps.

Installing packages

You can install packages through the Boomla Control Panel.

You can only install your own packages and those that are open source. If you want to allow others to install a package you have created, make sure to mark it as open source.

When a package is installed, a clone of its filesystem will be mounted at /sys/packages/PACKAGE_NAME within the website. This nested filesystem is read-only, mounted via a package link.

Also, a package may optionally store package-specific data (package data) under /sys/packageData/PACKAGE_NAME.

Updating packages

Installed packages are automatically updated by default. You can disable this on a per-website level.

Boomla provides migration support for packages. Package authors are expected to leverage this and provide packages that can be updated by users indefinitely, without manual updates to their websites.

What does this mean? Think of a package containing a gallery app. A user installs it on a website and creates a few galleries. As the package is developed new updates will be released containing potentially breaking changes. Gallery instances created in the past are expected to be updated and keep working. Also, after restoring any historical version of the website and updating the package, all instances are expected to remain functional.

Uninstalling packages

You can uninstall packages via the Control Panel. It will remove all package relevant data from the website’s filesystem. You can only remove packages that are unused, that is, removing the package will not break the file type of any remaining file within the website.

Debugging packages

As packages are mounted via package links, they are read-only. This is to make sure you are not making accidental changes that will be lost by the next package update.

If you intentionally decide you want to make changes, you have to change the link that mounts the package to a scope link, thereby breaking its connection with the original package source and disabling future updates.

To do that, find the package root file at /sys/packages/PACKAGE_NAME and set its link property to scope.