Add-on System
Larapen uses a modular add-on system. Add-ons extend the core app with additional functionality like blog, e-commerce, helpdesk, and more.
Installation
- Upload the add-on: In the admin panel, go to Admin → Extensions → Add-ons and click the Upload Add-on button. Select the add-on’s ZIP file: the system extracts it automatically and the add-on appears in the installed add-ons list.
- Activate the add-on: Find the add-on in the list and click Activate. Its migrations, seeders (if any) and permissions are set up automatically.
- Configure: Navigate to the add-on’s settings page (typically Admin → [Add-on] → Settings) to finish setup. Each add-on’s guide lists the specific options to review.
Activation & Deactivation
Add-ons can be activated or deactivated from the admin panel. Deactivating an add-on hides its routes, admin menu entries, and front-end features without deleting its data.
Dependencies
Some add-ons depend on others. For example, the Stripe add-on requires the Shop add-on. Dependencies are checked automatically during activation.
Uninstallation
Switching an add-on off without losing anything is a deactivation: find it in Admin → Extensions → Add-ons and click Deactivate. Its routes, views, admin menu entries and permissions stop being registered, but its database tables, the data they hold, its files under extensions/addons/<name>/ and its recorded purchase code are all kept. Click Activate again and the add-on picks up where it left off. Deactivation is refused while another active add-on depends on this one.
Removing
Removing is permanent and destroys the add-on’s data. The Remove button only appears on a deactivated add-on, so deactivate it first, then click Remove on its card and confirm the prompt. In one pass the admin panel runs the add-on’s uninstall hook, revokes the permissions declared in its addon.json, rolls back its migrations, dropping its database tables and every row they hold, purges its entries from the migrations table, deletes its published assets (public/addons/<name>/, public/vendor/<name>/, storage/app/public/addons/<name>/), deletes extensions/addons/<name>/, deletes its row in the addons table and clears the cache.
This cannot be undone. Back up your database first. The removal is refused, before anything is destroyed, when the add-on is still active, when another active add-on depends on it, or when the web server (PHP) user cannot delete the add-on directory. Deleting the folder over FTP or SSH is not equivalent: the tables, the migration entries and the addons row are all left behind.
Available Add-ons
- Blog: Posts, categories, tags, comments
- Shop: Products, orders, payments
- HelpDesk: Tickets, departments, knowledge base
- Forum: Community discussions
- Glossary: Technical glossary with searchable terms
- Newsletter: Email campaigns and segments
- Quote Requests: Quote request management
- Stats: Site analytics and visitor tracking
- And more...