PHPackages                             grossberger-georg/run-script - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. grossberger-georg/run-script

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

grossberger-georg/run-script
============================

Run a server-side script via the backend

v1.0.0(2y ago)14.7k↓66.7%[1 issues](https://github.com/garfieldius/run-script/issues)MITPHPPHP ^8.1

Since Mar 9Pushed 2y ago1 watchersCompare

[ Source](https://github.com/garfieldius/run-script)[ Packagist](https://packagist.org/packages/grossberger-georg/run-script)[ RSS](/packages/grossberger-georg-run-script/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (2)Dependencies (7)Versions (10)Used By (0)

Run Script
==========

[](#run-script)

This is a TYPO3 extension that allows an editor to run configured server-side scripts via a backend interface. It will add a dropdown menu to the toolbar of the backend to select the script to run.

Installation
------------

[](#installation)

Use composer to add the extension as a dependency: `composer require grossberger-georg/run-script`.

Configuration
-------------

[](#configuration)

> **Important**: The webserver must have nohup and bash installed and available to the user running in the PHP process in its $PATH variable.

### Creating a script

[](#creating-a-script)

The executing script will change its working directory to the root path of the project and export all available environment variables before execution. Example: in a composer-mode installation with default options, the script `./vendor/bin/typo3 scheduler:run` would start the scheduler.

The script is not escaped, quoted or in any other way changed. It is executed as it is given.

Any valid bash command is a valid script, so this is allowed too: `if [[ ! -f /tmp/hello ]]; then echo Hello > /tmp/hello; sleep 200; rm /tmp/hello; fi`

If the scripts points to a file, make sure it has the executable bit set.

If it is a file and has an EXT: prefix it will be resolved to an absolute path. An EXT: prefix somewhere in between will not be resolved. The script `EXT:shop/Resources/Private/Scripts/import.sh` will work, but `if [[ ! -f /tmp/importing ]]; then EXT:shop/Resources/Private/Scripts/import.sh; fi;` will not.

Only one instance of a script can run at a time. EXT:run\_script will create a lock and inform a user if there is already a process running that script.

### Setup scripts to run

[](#setup-scripts-to-run)

A script is two parts: a key as well as an array with at least two entries: a name and the bash command to execute. They are added to the global TYPO3\_CONF\_VARS:

```
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['run_script'][''] = [
    'label'  => '',
    'script' => '',
];
```

Use an extensions ext\_localconf.php or the AdditionalConfiguration.php file to add scripts. A simple demo is included which can be activated with in the extension settings with the option *Enable demo scripts*

The key should follow the TYPO3 convention of tx\_myext\_function.

Inside the array, the following options are available:

OptionRequiredDescriptionlabelyesLabel of the script, can be a LLL: referencescriptyesThe script to executeiconnoIcon identifier shown in the dropdownreloadBackendnoReload the backend after the given secondsIf `reloadBackend` is given, the number is the count of seconds, after which the backend is reloaded, after a script finished. This is useful if a script changes the data visible in the backend, like a product importer.

### Permissions

[](#permissions)

By default, administrators see all scripts. This can be disabled in the extension settings with the option *Disable always access for administators*. Then the access must be granted with TSConfig settings, like to editors.

Editors can only execute scripts which are in a comma separated list in the TSConfig key `tx_runscript.allowed`. The key of the configuration array must be in this list for a script to be executable.

Example:

```
# Always allow those two:
tx_runscript.allowed = tx_shop_import_products, tx_shop_export_orders

# Editors with Backend Group 3 can also run this one:
[like(","~backend.user.userGroupList~",", "*,3,*")]
    tx_runscript.allowed := addToList(tx_shop_clean_expired_carts)
[global]

```

License
-------

[](#license)

MIT License, see [LICENSE](./LICENSE) or

Logo and icon from [Bootstrap Icons](https://icons.getbootstrap.com/), released under the [MIT](https://github.com/twbs/icons/blob/main/LICENSE.md) license.

[TYPO3](https://typo3.org) is released under the GNU/GPL License. Please see  for details

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~114 days

Recently: every ~221 days

Total

9

Last Release

1020d ago

Major Versions

v0.3.2 → v1.0.02023-09-08

PHP version history (2 changes)v0.2.0PHP ^7.2 || ^8.0

v1.0.0PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/705480?v=4)[garfieldius](/maintainers/garfieldius)[@garfieldius](https://github.com/garfieldius)

---

Top Contributors

[![garfieldius](https://avatars.githubusercontent.com/u/705480?v=4)](https://github.com/garfieldius "garfieldius (32 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/grossberger-georg-run-script/health.svg)

```
[![Health](https://phpackages.com/badges/grossberger-georg-run-script/health.svg)](https://phpackages.com/packages/grossberger-georg-run-script)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

101466.4k45](/packages/friendsoftypo3-content-blocks)[pagemachine/typo3-formlog

Form log for TYPO3

23233.9k7](/packages/pagemachine-typo3-formlog)[fluidtypo3/flux

The flux package from FluidTYPO3

145999.7k24](/packages/fluidtypo3-flux)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1590.6k](/packages/eliashaeussler-typo3-form-consent)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

41515.2k](/packages/wazum-sluggi)[typo3/cms-install

TYPO3 CMS Install Tool - The Install Tool is used for installation, upgrade, system administration and setup tasks.

1812.0M439](/packages/typo3-cms-install)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
