TemplinTech™ Cache Cleaner for the Joomla! CMS
TemplinTech™ Cache Cleaner for the Joomla! CMS

TemplinTech™ Cache Cleaner for the Joomla! CMS [Documentation]

TemplinTech™ Cache Cleaner is a free Console Plugin for the Joomla!® CMS, designed for automated and controlled cleaning of the main Joomla! cache directory through a system cron job.

Current version: 1.0.2
Type: Joomla! Console Plugin
Compatibility: Joomla! 6.x
Minimum PHP version: PHP 8.3
Author: Dr. Yordan Balabanov
Website: https://templintech.com
License: GNU General Public License version 2 or later
Status: Stable

1. Purpose

TemplinTech™ Cache Cleaner automates the periodic cleaning of the main Joomla! /cache directory. The plugin is intended for Joomla! websites where the administrator wants the cache to be cleaned regularly through cron without having to log in manually to the administration panel.

The plugin uses the standard Joomla! Console infrastructure and the standard Joomla! CLI entry point:

cli/joomla.php

The main plugin command is:

templintech:cache-cleaner:run

TemplinTech™ Cache Cleaner does not use its own public PHP endpoint, remote execution URL, AJAX endpoint, or “secret URL”. Execution is performed by the server through PHP CLI.


2. Basic operating principle

TemplinTech™ Cache Cleaner has two separate settings that should not be confused:

  • The cron interval determines how often the server starts the plugin.
  • Cleanup Interval determines how often the cache should actually be cleaned.

The recommended configuration is for the cron job to start the plugin every 5 minutes, while the administrator defines the actual cleanup interval in Joomla!.

Cron: every 5 minutes
Cleanup Interval: 1 hour

In this case, cron starts the Joomla! command every 5 minutes. The plugin checks when the last successful cleanup took place. If one hour has not yet elapsed, it exits without deleting anything. If the interval has elapsed, the cache is cleaned.

2.1. Why this model is used

This model allows the cron job to be configured on the hosting account only once. The administrator can then change the actual cleanup interval directly from Joomla! without editing the cron configuration in the hosting control panel.

2.2. The important rule

Important: A cron job cannot provide more frequent execution than its own schedule allows.

For example:

Cron: once per day
Cleanup Interval: 1 hour

In this case, the cache will not be cleaned every hour. The plugin is started only once per day and therefore can clean the cache no more than once per day.

The practical rule is: the cron interval must be equal to or shorter than the selected Cleanup Interval.


3. What exactly the plugin cleans

TemplinTech™ Cache Cleaner works exclusively with the main Joomla! cache directory:

JPATH_ROOT/cache

This is typically the directory:

/cache

The plugin does not allow the administrator to define an arbitrary filesystem path.

Directories such as the following cannot be specified:

  • /administrator
  • /images
  • /media
  • /tmp
  • /home
  • /public_html
  • /
  • any other arbitrary directory.

Security: The restriction to the Joomla! root /cache directory is intentional. It reduces the risk of an incorrect or malicious filesystem target being specified.


4. What TemplinTech™ Cache Cleaner does not clean

The plugin is not a universal server cache manager and does not automatically clean:

  • browser cache;
  • CDN cache;
  • Cloudflare cache;
  • reverse proxy cache;
  • Varnish;
  • PHP OPcache;
  • Redis;
  • Memcached;
  • hosting platform caches;
  • other directories outside the Joomla! root /cache directory.

If the website uses additional caching infrastructure, it must be managed separately.


5. System requirements

  • Joomla!: 6.x
  • PHP: 8.3 or later
  • Environment: a hosting environment that allows Joomla! to be executed through PHP CLI
  • Scheduler: cron or an equivalent server-side scheduler

5.1. PHP for the website and PHP for cron are not always the same

The PHP version used by the web server to load Joomla! may differ from the PHP version used by cron when executing the command:

php

If the website runs on PHP 8.4 while cron uses an older PHP version, the absolute path to the correct PHP CLI binary must be specified.


6. Installation

6.1. Installing the package

Install:

plg_console_templintechcachecleaner-1.0.2.zip

In the Joomla! administration panel, open:

System → Install → Extensions

Upload the ZIP file and complete the standard installation.

6.2. Enabling the plugin

After installation, open:

System → Manage → Plugins

Search for TemplinTech™ Cache Cleaner, open the plugin, select the desired Cleanup Interval, enable it, and save the settings.


7. Available intervals

  • 5 minutes;
  • 10 minutes;
  • 15 minutes;
  • 30 minutes;
  • 1 hour;
  • 2 hours;
  • 4 hours;
  • 6 hours;
  • 12 hours;
  • 1 day;
  • 1 week.

The default value is 1 hour.

7.1. Protection against invalid values

The plugin accepts only predefined values. If an unsupported value is set due to a manual database change or damaged configuration, TemplinTech™ Cache Cleaner uses the safe default value:

3600 seconds / 1 hour


8. Cron information in the plugin settings

TemplinTech™ Cache Cleaner generates the required cron information directly in the Joomla! backend.

The administrator can see:

  • Cache target
  • CLI path
  • Cron command
  • Crontab line
  • Status command
  • Dry-run command
  • Force command

8.1. Cache target

This is the directory that will be cleaned.

/home/customer/www/example.com/public_html/cache

This value is informational and must not be entered as a cron command.

8.2. CLI path

This is the absolute filesystem path to the standard Joomla! CLI entry point.

/home/customer/www/example.com/public_html/cli/joomla.php

8.3. Cron command

This is the command that should be placed in a field named, for example, Command, Command to Run, Befehl, Cron Command, or Task Command.

php '/home/customer/www/example.com/public_html/cli/joomla.php' templintech:cache-cleaner:run --quiet

8.4. Crontab line

This is the complete cron line, including both the schedule and the command.

*/5 * * * * php '/home/customer/www/example.com/public_html/cli/joomla.php' templintech:cache-cleaner:run --quiet >/dev/null 2>&1

Important: Do not place the complete Crontab Line in the “Command” field if the hosting panel provides separate fields for Minute, Hour, Day, Month, and Weekday.


9. Recommended cron configuration

When the hosting environment allows it, the recommended cron schedule is:

*/5 * * * *

This means: run the command every 5 minutes.

9.1. Hosting panels with separate cron fields

Minute: */5
Hour: *
Day: *
Month: *
Weekday: *

Command:

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

Important: Use the absolute filesystem path displayed by TemplinTech™ Cache Cleaner. Do not use a URL such as https://example.com/cli/joomla.php.


10. What to copy and what not to copy

10.1. If the hosting provider has separate schedule fields

Use the individual cron values and copy only the Cron Command into the Command field.

10.2. If the hosting provider accepts the full crontab line

Use the Crontab Line value displayed by the plugin directly.

10.3. Do not copy the example path from this documentation

Paths such as:

/home/user/public_html/cli/joomla.php

are examples only. Use the path displayed by TemplinTech™ Cache Cleaner in your Joomla! backend.


11. PHP CLI binary

TemplinTech™ Cache Cleaner generates a command beginning with:

php

On many hosting platforms, this is sufficient. On others, you must replace the initial php with the absolute PHP CLI binary.

For example:

/usr/local/bin/php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


12. First test before creating the cron job

12.1. Status

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --status

This command does not delete files.

12.2. Dry run

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force --dry-run

Dry run simulates the cleanup without actually deleting files or directories.

12.3. Force

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force

This command performs an immediate real cleanup regardless of the configured interval.


13. CLI options

13.1. Normal execution

templintech:cache-cleaner:run

The plugin checks the interval and cleans only when the time for the next cleanup has been reached.

13.2. --quiet

--quiet reduces unnecessary CLI output during automatic cron execution.

13.3. --status

--status displays the current status without deleting files.

13.4. --force

--force starts the cleanup immediately without waiting for the configured interval. Security checks remain active.

13.5. --dry-run

--dry-run simulates the cleanup without deleting files and without updating the last-run state.


14. First automatic execution

If the plugin has never been executed and no previous successful cleanup has been recorded, the first normal cron execution is considered due.

You do not need to wait for the entire selected Cleanup Interval after installation.


15. Files that are preserved

TemplinTech™ Cache Cleaner does not delete the Joomla! /cache directory itself.

The following files are preserved at the root level:

  • index.html
  • .htaccess
  • web.config
  • .gitignore
  • .gitkeep
  • .templintechcachecleaner.state.json
  • .templintechcachecleaner.lock

16. State file

TemplinTech™ Cache Cleaner uses a local state file:

/cache/.templintechcachecleaner.state.json

It contains limited technical information about the last successful execution, such as the version, timestamp, number of removed files, number of removed directories, and approximate amount of freed space.

The state file does not contain user accounts, email addresses, IP addresses, cookies, passwords, database credentials, or visitor tracking information.

The maximum allowed state file size is 16384 bytes.


17. Lock file and concurrent execution

The plugin uses:

/cache/.templintechcachecleaner.lock

to prevent simultaneous execution by more than one cron process.

If one process is already performing cleanup, the second exits safely and does not begin a parallel cleanup.

17.1. Stale lock

If a cron process is interrupted unexpectedly and the lock file remains on disk, version 1.0.2 considers the lock stale after:

21600 seconds / 6 hours


18. Security model

TemplinTech™ Cache Cleaner performs filesystem operations and therefore uses a conservative security model.

Basic principle: if the plugin cannot confirm that the filesystem target is safe, the operation is stopped.

18.1. No user-defined filesystem target

The cleanup path cannot be supplied through GET, POST, URL, CLI parameter, an administrative text field, or an environment variable.

18.2. Joomla! /cache validation

Before cleanup, the plugin checks whether the directory exists, whether it is a real directory, whether it is not a symbolic link, and whether the resolved path matches the expected Joomla! root cache directory.

18.3. Symbolic links

If the Joomla! root /cache directory itself is a symbolic link, the plugin refuses to execute.

If a symbolic link is detected inside the cache tree, its target is not followed.

18.4. TOCTOU hardening

Version 1.0.2 includes additional checks against filesystem Time-of-check to time-of-use situations. Before critical operations, the parent path, filesystem object type, device, inode, and resolved location are checked again.

18.5. State file protection

State information is written through a temporary unique file and atomic rename instead of unsafe direct overwriting.

18.6. File permissions

Operational files are restricted to owner-only permissions 0600 where supported by the operating system.

18.7. No public cron URL

Security: Do not create a public PHP file or URL endpoint solely to work around a hosting scheduler limitation.


19. Privacy

TemplinTech™ Cache Cleaner does not use its own tracking mechanism and does not collect or send to TemplinTech IP addresses, browser fingerprints, analytics, user accounts, email addresses, visitor identifiers, or Joomla! cache content.

Runtime state is stored locally on the server.

The standard Joomla! Extension Update functionality may make a request to the official TemplinTech update endpoint to check for a new version.


20. Joomla! Update System

TemplinTech™ Cache Cleaner uses the standard Joomla! Update System for checking and distributing future versions.

Official update feed:

https://templintech.com/joomlaextensions/updates/templintechcachecleaner.xml

Official changelog:

https://templintech.com/joomlaextensions/updates/templintechcachecleaner-changelog.xml

Public page:

https://templintech.com/extensions/templintechcachecleaner

Release packages:

https://templintech.com/joomlaextensions/downloads/templintechcachecleaner/


21. Package integrity

TemplinTech update metadata may contain cryptographic checksums for the release package, including:

  • SHA-256;
  • SHA-384;
  • SHA-512.

They are used to verify the integrity of the downloaded update package.


22. Joomla! 7

TemplinTech™ Cache Cleaner 1.0.2 is officially declared for Joomla! 6.x.

The architecture is built using the modern Joomla! extension model, including namespace, dependency injection, Joomla! Console, and Symfony Console infrastructure.

This does not constitute a declaration of official Joomla! 7 compatibility before an actual Joomla! 7 release version is available for compatibility testing.


23. Architecture

  • Joomla! Console Plugin architecture;
  • PSR-4 namespace;
  • Joomla! dependency injection service provider;
  • Joomla! Registry for plugin parameters;
  • the standard Joomla! cli/joomla.php entry point;
  • Symfony Console command infrastructure;
  • PHP attributes;
  • strict PHP types.

Main namespace:

TemplinTech\Plugin\Console\TemplinTechCacheCleaner

Extension element: templintechcachecleaner
Plugin group: console


24. Supported languages

  • Bulgarian — bg-BG;
  • English — en-GB;
  • German — de-DE.

25. Performance

TemplinTech™ Cache Cleaner does not perform filesystem cleanup during a normal frontend visit to the Joomla! website. The cleanup process is started through Joomla! CLI by cron.

This means that a normal frontend page visit does not directly start the cleanup process.


26. Recommended production configuration

Cron: every 5 minutes
Cleanup Interval: 1 hour

This does not mean the cache is deleted every 5 minutes. Cron checks every 5 minutes, while the actual cleanup takes place approximately once per hour.


27. Shared hosting configuration

The following instructions are also intended for users with no cron experience.

Important: There is no universal cron interface for all hosting companies. Some providers use cPanel, others use their own control panel, and some shared hosting plans do not allow arbitrary CLI commands to be executed.

27.1. Main values

CLI Path — the absolute path to Joomla! cli/joomla.php.

Cron Command — the command without the time schedule.

Crontab Line — the schedule and the command in one line.

Cleanup Interval — how often TemplinTech™ Cache Cleaner should actually clean the cache.

27.2. The most common mistake

If the hosting interface provides separate fields for Minute, Hour, Day, Month, Weekday, and Command, do not place */5 * * * * in the Command field.

27.3. The second most common mistake

Do not use a URL to the Joomla! CLI.

Incorrect:

https://example.com/cli/joomla.php

Correct:

/home/account/example.com/public_html/cli/joomla.php


28. cPanel — universal configuration

Open:

cPanel → Advanced → Cron Jobs

Minute: */5
Hour: *
Day: *
Month: *
Weekday: *

Command:

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet >/dev/null 2>&1


29. Hostinger

Path: Websites → Dashboard → Cron Jobs

Type: Custom

Schedule:

*/5 * * * *

Command:

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

Hostinger uses UTC for cron schedules. For execution every 5 minutes, this has no practical impact.


30. SiteGround

Path: Site Tools → Devs → Cron Jobs

Set execution every 5 minutes and enter the “Cron Command” from TemplinTech™ Cache Cleaner.

If SiteGround displays a specific PHP CLI binary, use it instead of the initial php.


31. Bluehost

Path: Websites → Manage Site → Cron Jobs or cPanel → Advanced → Cron Jobs

Minute: */5
Hour: *
Day: *
Month: *
Weekday: *

Enter the Cron Command generated by the plugin in the Command field.


32. HostGator

Path: cPanel → Advanced → Cron Jobs

Use the following schedule:

*/5 * * * *

In Command, use a PHP 8.3+ CLI binary and the generated Joomla! CLI path.


33. DreamHost

DreamHost uses version-specific PHP CLI binaries.

Examples:

/usr/local/php83/bin/php
/usr/local/php84/bin/php

Example command:

/usr/local/php84/bin/php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


34. GoDaddy Web Hosting with cPanel

Path: Web Hosting → Manage → cPanel Admin → Advanced → Cron Jobs

Example PHP binary:

/usr/local/bin/php

Example command:

/usr/local/bin/php -q '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


35. Namecheap Shared Hosting

Path: cPanel → Advanced → Cron Jobs

Namecheap Shared Hosting should not be configured with a cron interval shorter than 5 minutes.

Suitable schedule:

*/5 * * * *


36. InMotion Hosting

Path: cPanel → Cron Jobs

Use the schedule */5 * * * * and enter the Cron Command from TemplinTech™ Cache Cleaner.


37. GreenGeeks

Path: Manage → Dev Tools → Cron Jobs

Use the following schedule:

*/5 * * * *

Enter the Cron Command from the plugin in the command field.


38. FastComet

Path: cPanel → Cron Jobs

Minute: */5
Hour: *
Day: *
Month: *
Weekday: *


39. HostArmada

Path: cPanel → Advanced → Cron Jobs

Use the schedule */5 * * * * and the Cron Command from the plugin.


40. ScalaHosting

40.1. SPanel

Open Cron Jobs or Cron Jobs Manager.

Schedule:

*/5 * * * *

Enter the value from TemplinTech™ Cache Cleaner in Cron Command.

40.2. cPanel

If the account uses cPanel, follow the standard cPanel instructions.


41. Krystal Hosting

Path: cPanel → Advanced → Cron Jobs

Example PHP binary:

/usr/local/bin/php

Example:

/usr/local/bin/php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


42. hosting.com / former A2 Hosting accounts

Path: cPanel → Advanced → Cron Jobs

On some shared hosting environments, the minimum cron interval may be 15 minutes.

In that case, use:

*/15 * * * *

and select a Cleanup Interval of 15 minutes or longer.


43. Hetzner Web Hosting / konsoleH

Path: Services / Einstellungen → Cronjob Manager

Use a PHP interpreter that matches the PHP version used by Joomla!.

If the interpreter is selected separately, use the Joomla! CLI path and arguments in the command field:

'/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

For the schedule, use the following when the plan allows it:

*/5 * * * *


44. webgo

Path: Vertragsübersicht → Cronjobs

For minute-level cron execution, using Webspace Admin may be necessary.

Minuten: */5
Stunden: *
Tag: *
Monat: *
Wochentag: *

With a version-specific PHP CLI binary, the command may look like this, for example:

/usr/bin/php83 '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


45. mittwald

In an environment that allows separate interpreter and arguments:

Interpreter: PHP
File: /REAL/PATH/cli/joomla.php
Arguments: templintech:cache-cleaner:run --quiet
Schedule: */5 * * * *


46. STRATO

46.1. STRATO Legacy hosting platform

Legacy packages with Cron Jobs may allow server-side PHP execution.

Example basis:

/bin/php -f '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

46.2. STRATO New Hosting Platform

Important: If the specific STRATO hosting plan does not provide Cron Jobs or a CLI scheduler, the automatic mode of TemplinTech™ Cache Cleaner cannot be used as intended.

Do not create a public PHP endpoint as a workaround.


47. IONOS

With IONOS, you should verify whether the specific hosting product provides actual PHP CLI cron execution.

If the Cron Job Manager accepts only a URL, it is not directly compatible with the CLI-only architecture of TemplinTech™ Cache Cleaner.

Security: Do not create a public cache-cleaner.php file merely to turn the CLI plugin into a URL cron task.


48. OVHcloud Web Hosting

The standard OVHcloud Web Hosting scheduler may have limitations both in the minimum interval and in the way arguments can be passed to a PHP script.

If the scheduler allows execution only once per hour, select a Cleanup Interval of 1 hour or longer.

Executing only:

cli/joomla.php

is not sufficient. The scheduler must also be able to pass:

templintech:cache-cleaner:run


49. Comparison of hosting limitations

Hostinger: suitable with a Custom cron command.

SiteGround: suitable through Site Tools Cron Jobs.

Bluehost: suitable when PHP 8.3+ CLI cron is available.

HostGator: suitable when a PHP 8.3+ CLI binary is available.

DreamHost: suitable; version-specific PHP CLI binaries are available.

GoDaddy cPanel: suitable.

Namecheap: suitable when the minimum cron interval is respected.

InMotion Hosting: suitable through cPanel.

GreenGeeks: suitable.

FastComet: suitable.

HostArmada: suitable.

ScalaHosting: suitable with SPanel/cPanel and CLI cron.

Krystal: suitable through cPanel.

hosting.com: suitable, but there may be a minimum interval of 15 minutes.

Hetzner: suitable through Cronjob Manager.

webgo: suitable when an appropriate cron frequency is available.

mittwald: suitable with a PHP interpreter cron job.

STRATO: depends on the specific hosting platform and plan.

IONOS: a URL-only scheduler is not directly compatible.

OVHcloud: support for full CLI arguments must be verified.


50. If your hosting provider is not listed

Look for a menu named:

  • Cron Jobs;
  • Scheduled Tasks;
  • Scheduler;
  • Task Scheduler;
  • Geplante Aufgaben;
  • Cronjobs.

Then check whether the interface allows execution of a command such as:

php /path/to/script.php argument

If the scheduler accepts only a URL, it is not sufficient for directly starting TemplinTech™ Cache Cleaner.


51. If your hosting provider does not allow 5-minute cron jobs

If the shortest allowed interval is 15 minutes:

Cron: every 15 minutes
Cleanup Interval: 15 minutes or longer

If the shortest allowed interval is 1 hour:

Cron: once per hour
Cleanup Interval: 1 hour or longer


52. Checking the PHP CLI version

If you have SSH or Terminal access:

php -v

If you use an absolute binary:

/usr/local/bin/php -v

TemplinTech™ Cache Cleaner 1.0.2 requires PHP 8.3 or later.


53. The command works manually but not through cron

The most common reasons are:

  • cron uses a different PHP binary;
  • cron uses a different PHP version;
  • the PATH environment is different;
  • the filesystem user is different;
  • the absolute Joomla! path is incorrect;
  • PHP CLI does not have write permissions for /cache;
  • the hosting provider restricts CLI execution;
  • the cron command contains shell syntax that the specific panel does not accept.

54. “php: command not found” error

If you receive:

php: command not found

use the absolute PHP CLI binary provided by the hosting provider.


55. Joomla! does not recognize the command

If Joomla! does not recognize:

templintech:cache-cleaner:run

check whether the plugin is installed and enabled, whether you are using the correct Joomla! cli/joomla.php, and whether the PHP CLI version is compatible.


56. Permission error

If the PHP CLI user does not have the required permissions for Joomla! /cache, do not automatically set:

0777 is not a recommended universal solution.

Check the owner, group, PHP CLI user, and the correct filesystem permissions.


57. “Another process is already running”

The message:

Skipped: another TemplinTech Cache Cleaner process is already running.

usually does not indicate a defect. Another process already holds the cleanup lock.


58. “Cleanup interval has not elapsed”

This is normal behavior. Cron has started the plugin, but the time for the next actual cleanup has not yet been reached.


59. The cache directory does not exist

If the Joomla! root /cache directory does not currently exist, the plugin has nothing to clean and this is not automatically treated as a critical error.


60. Cron email notifications

Many hosting panels can send an email after each cron execution. This is useful during initial testing.

After successful testing, you can use:

--quiet

and, with a suitable shell:

>/dev/null 2>&1


61. Recommended procedure for beginners

Step 1: Install TemplinTech™ Cache Cleaner.

Step 2: Enable the plugin.

Step 3: Leave Cleanup Interval set to 1 hour.

Step 4: Find Cron Setup in the plugin settings.

Step 5: Copy the Cron Command.

Step 6: Open Cron Jobs / Scheduled Tasks in the hosting control panel.

Step 7: Set cron to every 5 minutes if the hosting plan allows it.

Step 8: Paste the Cron Command into the Command field.

Step 9: Save the cron job.

Step 10: Check the result using the Status Command.


62. Backup before first use

Cache files are temporary by nature, but before deploying a new extension in a production environment, it is advisable to have a current backup.

First use:

--force --dry-run

before the actual:

--force


63. Uninstallation

TemplinTech™ Cache Cleaner can be uninstalled through the standard Joomla! Extension Manager.

Important: After uninstalling the plugin, you must manually remove the corresponding cron job from the hosting control panel. Joomla! does not manage cron tasks on the external hosting provider.

63.1. Runtime files

After final uninstallation, the following files may remain:

/cache/.templintechcachecleaner.state.json
/cache/.templintechcachecleaner.lock

They can be removed manually after the plugin has been permanently uninstalled.


64. Upgrade

It is not necessary to uninstall the previous version before an update.

TemplinTech™ Cache Cleaner uses the Joomla! upgrade mechanism and Joomla! Update System. During a normal update, the existing configuration is preserved.


65. Changelog for version 1.0.2

Security

  • additional hardened filesystem traversal;
  • protection against symbolic-link substitution;
  • additional TOCTOU protection;
  • atomic exclusive lock creation;
  • filesystem identity validation;
  • state path protection;
  • restricted operational file permissions where supported.

Configuration

  • whitelist of permitted Cleanup Interval values;
  • final TemplinTech Joomla! Update System endpoints.

66. Frequently asked questions

Does cron have to run every 5 minutes?

No. This is the recommended configuration when the hosting provider allows it.

If the Cleanup Interval is 1 hour, why should cron run every 5 minutes?

So that the plugin can manage the actual interval itself and changing it does not require editing the cron configuration.

Will the cache be cleaned every 5 minutes?

No, unless you explicitly select a Cleanup Interval of 5 minutes.

Can I specify another directory?

No. Version 1.0.2 intentionally works only with the Joomla! root /cache directory.

Does it delete the /cache directory itself?

No.

Does it delete the root index.html?

No.

Does it follow symbolic links?

No.

Is there a public URL for execution?

No.

Does it send cache content to TemplinTech?

No.

Is a download key required?

Not for the current free distribution.

Can it work without cron?

The CLI commands can be executed manually, but automatic periodic cleanup requires cron or another suitable server-side scheduler.

Can an external web cron service start it?

Not directly. The plugin intentionally does not provide a public HTTP endpoint.

What if the hosting provider allows cron only once per hour?

Set the Cleanup Interval to 1 hour or longer.

What if the hosting provider allows cron no more frequently than every 15 minutes?

Use cron every 15 minutes and a Cleanup Interval of 15 minutes or longer.


67. Quick reference

Status

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --status

Dry run

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force --dry-run

Immediate cleanup

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force

Normal cron execution

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

Recommended crontab

*/5 * * * * php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet >/dev/null 2>&1


68. Support information

If you experience a technical problem, it is useful to have the following information available:

  • Joomla! version;
  • TemplinTech™ Cache Cleaner version;
  • website PHP version;
  • PHP CLI version;
  • hosting provider;
  • hosting plan;
  • cron command used;
  • selected Cleanup Interval;
  • Status Command result;
  • exact CLI error output.

Do not publish publicly: hosting passwords, Joomla! administrator passwords, database passwords, SSH private keys, API keys, or other credentials.


69. License and authorship

TemplinTech™ Cache Cleaner is distributed under:

GNU General Public License version 2 or later.

Free distribution of the software does not remove copyright protection for the original code.

Author: Dr. Yordan Balabanov
Copyright: Copyright (C) 2026 Dr. Yordan Balabanov.
Website: https://templintech.com


70. TemplinTech™ Cache Cleaner

TemplinTech™ Cache Cleaner is a free Joomla! Console Plugin for controlled and automated cleaning of the main Joomla! cache directory through a server-side cron job.

The plugin is developed with a focus on clear configuration, limited filesystem scope, CLI-only execution, safe concurrent execution, filesystem hardening, and modern Joomla! extension architecture.

 

Developed by Dr. Yordan Balabanov.
Copyright (C) 2026 Dr. Yordan Balabanov.
Licensed under GNU General Public License version 2 or later.


71. Trademarks

TemplinTech™ and TemplinTech™ Cache Cleaner are used as product and trade designations of Dr. Yordan Balabanov.

Joomla!® is a registered trademark of Open Source Matters, Inc. in the United States and other countries.

TemplinTech™ Cache Cleaner is an independently developed extension and is not part of, supported by, or endorsed by Open Source Matters, Inc. or the Joomla! Project.

The use of the Joomla! name in this documentation is descriptive and indicates the compatibility and intended purpose of the extension.

YOU MAY ALSO LIKE

TemplinTech™ Admin Guard for the Joomla! CMS [Documentation]
TemplinTech™ Admin Guard for the Joomla! CMS [Documentation]

CONTACT

Contact person: Dr. Yordan Balabanov
Phone: +49 176 376 708 10
Email: info@templintech.com
Business hours: Mon–Fri: 09:00–16:00 (CET/CEST)

© 2025–2026 TemplinTech™. Operated by Dr. Yordan Balabanov. All rights reserved.


Open to strategic partnerships and value-driven business proposals. If your project requires professional expertise or you are looking for high-level collaboration, feel free to reach out to discuss specific objectives.

Best regards,
Yordan Balabanov ∴