Skip to content

About

A secure web panel for running Artisan commands: Gate-authorized, risk-classified and audited.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

laranail/artisan-ui

Tests Static analysis License: MIT

laranail/artisan-ui is not on Packagist, so there is no registry-version badge to show; Install covers the VCS route.

A secure web panel for running Artisan commands, authorized per user and per command through Gate abilities, risk-classified, audited, with quick actions and run history.

Targets PHP ^8.4.1 || ^8.5 on Laravel ^13.0. Built on laranail/package-tools, laranail/console and laranail/enumerator. Derived from lorisleiva/artisan-ui, with features from pabloleone/artisan-ui and dev-arindam-roy/artisan-ui.

Install

Add the VCS repositories (the laranail family does not resolve through Packagist), then require the package. Use --dev if the panel is only for local work, so it does not exist in production at all:

"repositories": [
    { "type": "vcs", "url": "https://github.com/laranail/artisan-ui" },
    { "type": "vcs", "url": "https://github.com/laranail/package-tools" },
    { "type": "vcs", "url": "https://github.com/laranail/console" },
    { "type": "vcs", "url": "https://github.com/laranail/enumerator" }
]
composer require --dev laranail/artisan-ui
php artisan laranail::artisan-ui.install

Then decide who may use it. Nobody can until you do:

Gate::define('laranail-artisan-ui.access', fn (User $user) => $user->isAdmin());
Gate::define('laranail-artisan-ui.run', fn (User $user, $command, array $input) => $user->isAdmin());

Quick start guide and usage

Getting started

Every default fails closed, so the panel is unreachable until three things are true:

  1. php artisan laranail::artisan-ui.install has run (see Install). It publishes config/laranail/artisan-ui.php and the migration for the laranail_artisan_ui_runs table, which only the database audit driver needs.
  2. The laranail-artisan-ui.access and laranail-artisan-ui.run abilities are defined (see Install). Both deny until you do.
  3. LARANAIL_ARTISAN_UI_ENABLED=true is set. While it is false the routes are not registered at all, and the panel answers only in the local environment unless you widen environments.

Usage

# With the `access` and `run` abilities defined (see Install), switch the panel on and check it.
echo "LARANAIL_ARTISAN_UI_ENABLED=true" >> .env
php artisan laranail::artisan-ui.doctor

# Then sign in as an allowed user, open /artisan, pick `about` and press Run.

The full walkthrough is in Getting started; everything else is in the documentation index.

Documentation

Full documentation is at opensource.simtabi.com/documentation/laranail/artisan-ui.

Guides

  • Installation: requirements, VCS setup, the install command
  • Getting started: switch the panel on and run a first command
  • Configuration: every key under laranail.artisan-ui
  • Architecture: the headless core, the web module, and why they are split
  • Security: the threat model and every check between a request and a run
  • Release: how versions are cut and consumed

Reference

Recipes

Contributing & security

Issues and PRs are welcome; see CONTRIBUTING.md. Report vulnerabilities privately per SECURITY.md (security@simtabi.com). Participation follows the Code of Conduct.

License

MIT © Simtabi LLC, retaining the notices of the three projects it derives from. See LICENSE and attribution.md.

About

A secure web panel for running Artisan commands: Gate-authorized, risk-classified and audited.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages