Table of Contents
1. Quickstart
- Install the J!UM package on a dedicated Joomla 6 installation. J!UM is designed to run as a standalone Control Center.
- After installation, check the system status: Joomla 6, PHP 8.3 or newer, libsodium, SMTP and additional HTTP password protection should be configured correctly.
- Activate your J!UM license. The license plan determines the maximum number of projects you can manage: Starter 5, Professional 25, Agency unlimited.
- Install the appropriate J!UM Client Connector for Joomla 5 or Joomla 6 on every website you want to manage.
- Generate a long, random connector token with at least 32 characters on the client website. Transfer it securely to the corresponding J!UM project.
- Create a project in J!UM. Enter the website URL, connector URL or automatic default, connector token and, if required, HTTP Basic credentials.
- Click “Test Connection”. Only load the extension inventory after this test is successful.
- Load the extensions and then start “Check for Updates”. J!UM updates the information for components, modules, plugins and templates.
- Check the pending extension updates. If Akeeba Backup Pro is integrated, create a fresh backup first if required.
- Start the extension update and monitor the persistent job. Afterwards, manually verify that the website is working correctly.
Core Updates Remain with Joomla
If J!UM detects a new Joomla Core version, it is displayed as a notice. The Core is not updated by J!UM. Use the Joomla update area of the respective website or Joomla's automatic update functionality instead.
2. System Requirements
2.1 J!UM Control Center
| Requirement | Recommendation |
|---|---|
Joomla | Joomla 6 on a dedicated Control Center installation. |
PHP | PHP 8.3 or newer. Installation is aborted below PHP 8.3. |
HTTPS | The Control Center and all connector targets must be accessible over HTTPS. |
Libsodium | Required for secure local storage of J!UM license data. |
SMTP | Recommended for reliable status, security and reminder emails. |
Additional Access Protection | HTTP Basic Authentication or server-side password protection in front of Joomla is strongly recommended. |
Extensions on the Control Center | The Control Center should contain only Joomla Core components and extensions that belong to the J!UM package. |
Joomla Scheduler | Should be enabled. J!UM creates a queue task with a one-minute interval during package setup. |
Dedicated Installation Recommended
2.2 Managed Joomla Websites
| Requirement | Recommendation |
|---|---|
Joomla Version | Joomla 5 or Joomla 6 with the corresponding J!UM Client Connector. |
HTTPS | The connector is accessed over HTTPS only. |
Publicly Accessible Host | Local, private and reserved target addresses are rejected for security reasons. |
Connector Token | At least 32 characters; use a separate token for each website. |
Update Sources | The Joomla update sites of installed extensions must be configured correctly. |
Commercial Extensions | Vendor-specific download keys or update credentials must be configured correctly on the respective client website. |
2.3 Security Check in the Control Center
3. Installation and Initial Configuration
3.1 Install the Package
- Log in to the Joomla administrator area of the future Control Center.
- Open System > Install > Extensions.
- Upload the complete package pkg_a4p_jum.zip. Do not extract the package beforehand.
- Wait until Joomla confirms the installation of all package components.
3.2 Automatically Configured Components
- The task plugin “J!UM - Scheduled Update Check” is enabled.
- The installer plugin “J!UM - Protected Update Authorization” is enabled.
- Joomla's Lazy Scheduler Runner is enabled where possible.
- The Scheduler task “J!UM: Persistent Job Queue” is created or updated; recommended interval: 1 minute.
- The included J!UM frontend template is set as the default where hosting or database policies allow it.
Check After Installation
3.3 Activate the J!UM License
| Plan | Project Limit |
|---|---|
Starter | up to 5 projects
|
Professional | up to 25 projects
|
Agency | unlimited projects
|
3.4 Secure the Control Center
- Use HTTPS and additional HTTP Basic protection in front of Joomla.
- Where possible, do not run unrelated components, modules, plugins or templates on the Control Center.
- Configure SMTP and test email delivery.
- Restrict J!UM to users with the required Joomla administrator permissions.
- Back up the Control Center itself regularly outside the J!UM workflow.
4. Connector
4.1 Install the Connector
- Install the connector using the Joomla installer on the client website.
- Enable the connector plugin if Joomla has not already done so automatically.
- Generate a random token with at least 32 characters in the connector.
- Store the token in a secure location and transfer it to the corresponding J!UM project.
Token Management
4.2 Connector Data in J!UM
| Field | Meaning |
|---|---|
Website URL | Public HTTPS address of the managed Joomla website |
Connector URL | Can be left empty; J!UM automatically generates the default URL from the website URL. Enter it manually only for non-standard setups. |
Connector Token | At least 32 characters. For existing projects, leave this field empty if the stored token should remain unchanged. |
HTTP Username / Password | Optional if the website or connector is additionally protected by HTTP Basic Authentication. |
4.3 Test the Connection
The “Test Connection” action performs a short authenticated ping. The test checks whether the connector is reachable, whether the token is accepted and whether J!UM receives a valid JSON response.
Connector requests are sent only to HTTPS targets with public hosts. Responses are size-limited, and external error messages are sanitized before they are stored and displayed.
4.4 Common Connector Errors
| Message / Symptom | Check |
|---|---|
HTTP 401/403 | Check the token, HTTP Basic credentials and server-side protection rules. |
HTTP 404 | Check the connector path, plugin activation and rewrite/routing rules.
|
Timeout | Check server load, firewall, proxy and reachability of the client website.
|
Invalid JSON Response | Check intermediary error pages, security plugins or proxy responses.
|
HTTPS/Public Host Required | Do not use local, private or unencrypted connector targets.
|
5. Projects
5.1 Create a Project
| Field | Use |
|---|---|
Name | Freely selectable project name.
|
Hosting Provider | Internal information about the hosting provider.
|
Contact Person | Project or client contact.
|
Email | Used for the optional manual client contact form.
|
3-Month Trial Period | Optional trial-customer flag; the start date is stored on first activation and marked as expired after three months.
|
Website URL | Public HTTPS address.
|
Connector URL / Token | Technical connection details for the website.
|
HTTP Basic Credentials | Optional upstream password protection.
|
Notes | Internal project-specific notes.
|
Akeeba Backup Pro | Optional: API endpoint, secret and profile ID.
|
License Expiration Dates | Any extension licenses with expiration dates for reminders.
|
5.2 Project Overview
The project overview shows the status of all managed websites. This includes Joomla and PHP versions, pending extension updates, connector status, Akeeba/HTProtect notices and project-specific actions.
Filters help with larger project portfolios, for example by Akeeba Backup Pro, HTProtect or trial customers. URL search makes it easier to find individual projects quickly.
5.3 Project Details
6. Updates and Extension Management
No Joomla Core Update
6.1 Load the Extension Inventory
6.2 Check for Updates
“Check for Updates” asks the managed Joomla website to check its update sources. J!UM then retrieves the refreshed extension status. This does not trigger a Joomla Core update.
J!UM can also detect whether Joomla itself reports a newer Core version. This state is used as a notice and can trigger an administrator email.
6.3 Update an Individual Extension
- Open the project detail page.
- Check the “Pending Extension Updates” section.
- Select the desired extension and start the update.
- J!UM creates a persistent job when the workflow is processed through the queue.
- After completion, the inventory and update status are checked again. Also verify the website manually.
6.4 Multiple Extensions / Projects
6.5 Cross-Project Search
6.6 If an Update Remains Pending
- valid vendor license or download key on the client website
- reachable and correctly configured Joomla update site
- compatibility with the Joomla and PHP versions in use
- vendor instructions for manual migration or update steps
- error notices in the J!UM history and Joomla system messages
7. Akeeba Backup Pro
7.1 Requirements
- Akeeba Backup Professional installed on the managed website
- enabled Akeeba JSON API
- secure Akeeba secret
- valid profile ID, profile 1 by default
- API endpoint reachable over HTTPS
7.2 Configure Backup
- Open Edit Project.
- Enable “Activate Akeeba Backup Pro for this website”.
- For a standard configuration, leave the Akeeba API URL empty or enter the appropriate endpoint.
- Enter the Akeeba secret. For later changes, leave the field empty if the existing secret should remain unchanged.
- Enter the profile ID and save the project.
7.3 Start Backup and Track Progress
Technical Limits
7.4 Backup Status and Warnings
7.5 Scope of Responsibility
8. HTProtect
8.1 Detection and Status
8.2 Supported Checks
- Site Scan
- Core File Check
- Malware Scan
Core File Check Is Not a Core Update
8.3 Without HTProtect
9. Persistent Job Queue
9.1 Which Operations Are Processed Persistently?
- Update/discovery jobs across managed projects
- Extension updates
- Akeeba backups
9.2 Scheduler and Browser Worker
| Situation | Behavior |
|---|---|
Visible Browser Tab | The worker starts after approximately 1 second; further queue ticks follow after approximately 3 seconds. |
Hidden Browser Tab | Conservative interval of approximately 20 seconds. |
Joomla Scheduler | Processes the queue in the background; one Scheduler run processes several steps within a limited time window. |
Parallel Requests | The next browser worker is scheduled only after the previous request has completed. |
9.3 Status and Retries
| Status | Meaning |
|---|---|
Waiting | A step is waiting for its next processing cycle. |
Backup Running | Akeeba has been started and additional engine steps are required. |
Running | The step is currently locked by a worker. |
Completed | The step completed successfully.
|
Failed | The allowed retries have been exhausted or a non-retryable error occurred.
|
9.4 Queue Security
- Queue actions require the Joomla permission core.manage.
- Write requests from the browser worker are protected against CSRF.
- Atomic lock tokens prevent duplicate processing of the same item.
- Decrypted connector tokens and Akeeba secrets are not written to persistent queue payloads.
- Remote status and error text is sanitized and length-limited.
10. Email Options
10.1 Requirements
10.2 Central Notification Email
| Option | Effect |
|---|---|
Status After Each Update Check | Sends the result, number of pending extension updates and, where applicable, messages.
|
Status After Completed Updates | Sends the result of completed extension updates.
|
Notice for Outdated Joomla Version | Notifies you when Joomla itself reports a newer Core version. J!UM does not perform the Core update.
|
Notice for Outdated/Missing Backup | For projects with Akeeba integration; reports old or missing backups.
|
General Project Status | Can summarize basic technical data or errors.
|
License Reminder 1 Month / 1 Week | Reminds you about extension licenses maintained in J!UM.
|
10.3 Manual Client Contact Form
Privacy and Support
11. License Expiration Dates and J!UM License
11.1 J!UM Product License
The J!UM license controls the project limit and entitlement to J!UM software updates and support. License keys and client tokens are stored locally in encrypted form. The license is validated regularly against the A4Pro License Bridge; by default, the Scheduler checks approximately every 12 hours when a validation is due.
Expired maintenance does not deactivate the usage rights you have already purchased. The existing project limit remains in place; new J!UM software updates and support become available again only after renewal.
11.2 Project Limit
11.3 Extension Licenses per Project
Independently of the J!UM product license, expiration dates for any commercial extensions can be maintained for each project. Each entry stores the extension name and expiration date.
If reminders are enabled, J!UM sends a one-time monthly reminder between 8 and 30 days before expiration and a weekly reminder between 0 and 7 days before expiration. The recipient is the central notification email address.
12. Logs and History
12.1 Project History
12.2 Global Log View
12.3 CSV Export
Using “Download Log File”, the visible system history is exported as UTF-8 CSV with a semicolon delimiter. The export includes date, project, website URL, action, status and message.
J!UM also protects the CSV export against spreadsheet formula injection before values are passed to spreadsheet applications.
12.4 Logging Limitations
13. Troubleshooting
13.1 Recommended Order
- Check the message directly in the J!UM job or project history.
- Run “Test Connection” for the project.
- Reload the extension inventory.
- Check whether the same operation works directly in the Joomla backend of the client website.
- For Akeeba/HTProtect: check whether the respective extension works correctly on the client website itself.
- Check Joomla, PHP, proxy, firewall and hosting conditions if only a single domain is affected.
- Only then should J!UM code be considered as the possible cause and investigated specifically.
13.2 Error Patterns
| Error Pattern | Possible Cause / Action |
|---|---|
Connection Test Fails | Check connector URL, token, HTTPS, HTTP Basic, firewall and security rules.
|
Extensions Are Not Loaded | Check connector version and response; open the client website directly; rule out PHP/server errors.
|
Update Remains Pending | Check vendor license, download key, update site and compatibility.
|
Joomla Version Is Outdated | Update the Core directly through Joomla; J!UM does not perform Joomla Core updates.
|
Job Remains Waiting | Check the Scheduler task, browser worker and active locks; keep the page open and monitor the jobs view.
|
Akeeba Backup Is Slow | Test Akeeba directly on the client website; check server load and Akeeba configuration. J!UM displays API progress, but it cannot make the target server faster.
|
Akeeba API Timeout | Check the API endpoint, server/proxy/firewall, Akeeba API and response times.
|
HTProtect Not Available | Check installation/version status on the client website and connector support.
|
No Email | Check Joomla SMTP, sender address, central recipient address and enabled J!UM mail options.
|
Cannot Create New Projects | Activate the J!UM license or check the project limit of the plan.
|
13.3 Collect Support Information
- installed J!UM version
- Joomla version of the Control Center
- Joomla and PHP version of the affected client website
- connector version
- specific action and timestamp
- complete but sanitized J!UM error message
- for Akeeba/HTProtect: result of the same operation directly in the target system
Do Not Include Credentials
14. Changelog and Release Notes
Important milestones of the current J!UM development status.
The complete technical changelog is also available directly in J!UM through the “Changelog” menu item. Before a production release, the version number, package manifest and public changelog should all be brought to the same final state.




