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. grossberger-georg/run-script

ActiveTypo3-cms-extension

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

Run a server-side script via the backend

v1.0.0(2y ago)14.7k↓22.4%[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 1mo 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 54% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity23

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

975d 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://www.gravatar.com/avatar/33cec52d725387dfbede3ead984419eef7fe723d99f80ebca8ea15bc28a2bb03?d=identicon)[garfieldius](/maintainers/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

[fluidtypo3/vhs

This is a collection of ViewHelpers for performing rendering tasks that are not natively provided by TYPO3's Fluid templating engine.

1954.1M48](/packages/fluidtypo3-vhs)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit, functional and acceptance testing.

675.0M775](/packages/typo3-testing-framework)[in2code/in2publish_core

Content publishing extension to connect stage and production server

40135.8k](/packages/in2code-in2publish-core)[pagemachine/typo3-formlog

Form log for TYPO3

23225.3k6](/packages/pagemachine-typo3-formlog)[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

20229.9k](/packages/eliashaeussler-typo3-warming)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

63991.3k4](/packages/netresearch-rte-ckeditor-image)

PHPackages © 2026

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