Repository navigation
Modules
Modules are add-ons that extend Cactus with extra features - a contact form, a blog, a forum, an events calendar, and more. Each module is self-contained: it can be installed, switched off, or removed without affecting anything else on your site.
The Modules page is laid out in four tabs, with a search box on the right of the tab bar that filters whichever tab you are on by name or description:
- Installed - everything on your site now. This is where the page opens, unless you have nothing installed yet.
- Updates available - only the modules with a newer release waiting. The number on the tab is how many.
- Browse - the directory of officially listed modules, reviewed and published by the Cactus Foundation.
- Add your own - install a module from any GitHub repository you have the address for.
Every module is shown as a card with its own picture, its name, what it does, and one button for the obvious thing to do next. Everything else - turning it off, changing which releases it follows, uninstalling - lives behind the … button in the corner of the card, so the card itself stays readable.
A module with no picture of its own gets a plain green tile with its initial on it. Nothing is wrong; that one simply hasn't been drawn yet.
From the directory:
- Go to Modules → Browse.
- Click Install on the card. That fetches the finished release, which is what almost everyone wants.
- To take the latest pre-release instead, open the card's … menu, choose Early (beta) releases, and the button changes to Install beta. Useful for trying new features early, though they may have rough edges.
- If a Cactus update or other module updates are waiting, a short dialog appears first - see "Bringing everything else along" below. If nothing is waiting, the install starts immediately.
- Cactus installs it and triggers a short rebuild. A progress screen appears - this typically takes under two minutes.
Some modules have only ever put out a pre-release. Those are marked Beta only and there is nothing to choose.
A module installed as a beta starts life following early releases, marked with a Beta badge next to its version once installed. You can switch it back at any time - see "Each module's update channel" below.
From a GitHub URL:
- Go to Modules → Add your own.
- Paste the GitHub repository URL.
- Click Install and wait for the rebuild.
Once installed, the module appears in your admin sidebar if it adds any admin pages.
Every install means one rebuild. Doing an install, then a Cactus update, then a round of module updates means sitting through three of them, which is two too many.
So when you click Install, Cactus has a quick look for anything else waiting - you'll see the button say Checking… for a moment - and if it finds something, it asks first. The dialog offers, ticked by default:
- Also update Cactus to v… - shown when a Cactus update is waiting. Only offered if you're allowed to change settings; if module installs are all you can do, this one won't appear.
- Also update the modules with updates waiting - shown when any installed module has a newer release, listing which ones and what they'd move to.
Untick whatever you'd rather leave alone. Everything ticked goes out in the same deployment as the install, so you wait once.
Nothing waiting means no dialog at all - the install just gets on with it, as it always did. The look is taken at the moment you click rather than when the page loaded, so a Cactus release that landed while you were reading the store still gets offered.
Each update is still checked for compatibility on its own, exactly as Update all does. Anything that isn't happy - a module wanting a newer Cactus than the one going out, or another module you haven't got - is left where it is and reported back with the reason, while the rest go ahead.
If a module needs a newer Cactus than you're running, the install is politely refused and you'll be told to update Cactus first - the other way round ends in a broken deployment, which is why we don't let it happen. If the waiting Cactus update is new enough to satisfy it, though, the message comes with an Update Cactus and install button: both go out together in one deployment, and there's nothing else for you to do.
If a module needs another module you've already got, and that one is either mid-update or has an update waiting, it counts. A module that is installed and switched on satisfies the requirement at whichever version it is going out at - so installing something that wants the newest shop works while shop's own update is still on its way, rather than turning you away for a module sitting right there on the page.
Some modules need extra credentials - for example, a contact form module might need email settings to send you notifications. After installation, any required settings appear as a checklist. Fill them in and save. Cactus applies the settings with another short rebuild.
You can switch a module off without removing it. A disabled module's features are hidden from visitors and its admin pages disappear from the sidebar - but all its data is preserved and ready to go if you enable it again.
To switch a module off, open its card's … menu on the Installed tab and choose Turn off. A module that is off shows a Disabled badge and its card offers Enable as its main button, so switching it back on is a single click.
Cactus checks each installed module for updates once when you open the Modules page. While it's checking, the card says "Checking…" - this only takes a moment.
To check again straight away, use Check for updates at the top of the page (which rechecks the lot and refreshes the directory), or Check for updates in a single card's … menu. To avoid hammering GitHub, the automatic check only runs once every ten minutes per module - reopening the page within that window reuses what was last found rather than checking again. Asking for a check yourself always happens right away, ignoring that wait.
When a newer version is available the module gets an Update available badge and moves into the Updates available tab.
- Click Update to v… on the card. What's new beside it shows the release notes first, if you'd like to know what you're getting.
- Cactus installs the new version and triggers a short rebuild.
- A progress screen keeps you updated.
If two or more modules all have updates waiting, an Update all button appears at the top of the page. Click it to install every pending update in one go - it's a single rebuild covering all of them, rather than one rebuild per module.
Update all now checks compatibility one module at a time, exactly as updating a single module has always done. A module that needs a newer version of Cactus than you're running, or another module you haven't installed, is left on its current version and reported back to you with the reason. The rest go ahead. Previously the bulk button took every latest version on trust, and one module wanting a newer Cactus could stop the site rebuilding at all - a bad afternoon for the sake of a convenience button.
Cactus also reads a module's requirements from the exact release it's about to install, rather than from whatever the module's authors have committed since. What you're told about a version is what that version actually says about itself.
If the new version needs a newer Cactus, the update is refused for the same reason an install is - and, as with an install, the message now comes with an Update Cactus and update button when the waiting Cactus release is new enough. Both go out in one deployment. Updating Cactus is a settings job, so the button only appears if you're allowed to do that; otherwise you'll be pointed at the update panel as before.
Only one install, update or removal can run at a time, which is why a second one is turned away with that message. If the first one was cut short - the odd occasion where the job is stopped mid-flight rather than finishing or failing properly - that hold used to stay put and nothing could be installed or updated again. Now anything left holding on for more than fifteen minutes is treated as abandoned and cleared automatically, so the next attempt simply works. Fifteen minutes is comfortably longer than any genuine install takes, rebuild included.
- Go to Modules → Installed and find the module you want to remove.
- Open its … menu and click Uninstall.
- Choose what to do with the module's data:
- Remove code only - the module is removed from your site, but all its stored data (posts, submissions, etc.) is kept in the database.
- Remove code and data - the module and all its data are permanently deleted. This option is only available if the module supports it.
- Confirm. A short rebuild completes the removal.
Heads up: "Remove code and data" is permanent and cannot be undone. If you think you might reinstall the module later, choose "Remove code only" to keep your data safe.
Removing a module costs a rebuild just like installing one does, so the uninstall dialog makes the same offer. While it's open, Cactus has a quick look for anything else waiting and adds the tick boxes below the data choice, ticked by default:
- Also update Cactus to v… - shown when a Cactus update is waiting. As with installing, only offered if you're allowed to change settings.
- Also update the modules with updates waiting - shown when any of your other modules has a newer release. An update for the module you're removing is not offered, for reasons we hope are obvious.
The look takes a second, so you'll briefly see "Checking whether anything else is waiting to go out…". Confirm before it finishes and the removal simply goes out on its own, exactly as it always did. Nothing waiting means no tick boxes at all.
Everything ticked goes out in the same rebuild as the removal, so you wait once instead of three times. Each update is still checked for compatibility on its own: anything that isn't happy is left where it is and reported back with the reason, while the rest go ahead.
Cactus itself (not the modules) is updated from Settings → General, which is covered on the Configuration reference page.
Every installed module has its own update channel, set independently of every other module and of Cactus's own channel:
- Finished releases (default) - stable releases only.
- Early (beta) releases - stable releases plus pre-releases. Useful for trying a module's new features early, though they may have rough edges.
You'll find both under Which releases in each card's … menu on the Installed tab, with a tick against the one in force. Switching takes effect immediately - the next time Cactus checks that module for updates, automatically or because you asked, it checks against the newly chosen one.
Wiki: Home · Managing pages · Appearance and design · Managing users · Managing media · Modules · Gazette · Boards · Directory · Shop · Shop Variations · Product Attributes · Shop Filters · Product Discovery · Stock Imports · Google Shopping · Reply Catcher · Gemini Watermark Remover · Google Tag · Ultimate SEO · UK Bookkeeping · Purchase Orders · Unified Inbox · Configuration reference