laranail/db-console-webui is not published to Packagist, so there is no registry-version badge to show: see Install.
A thin Livewire + Flux web UI for
laranail/db-console— all UI, zero business logic. Every screen calls the audited core services and reuses the core validation layer.
Requires PHP ^8.4.1 || ^8.5, Laravel ^13.0, Livewire ^3.5.19 || ^4.0, and Flux ^2.0. This package is a front end only: the logic, security, and audit live in laranail/db-console, which this depends on.
The design is deliberate — the UI can never grow its own business logic or validation. A build-failing architecture test forbids any component from touching an engine, a connection, or raw SQL, or declaring its own validation rules for a database field. Names, hosts, and privileges are validated by the exact same rules the CLI and REST API use, so the three surfaces can never disagree.
laranail/db-console-webui is not on Packagist. Add its VCS repository, and one for every laranail/* package it pulls in, to your application's root composer.json (Composer ignores a dependency's own repositories), and keep Packagist from serving the laranail/* names:
"repositories": [
{ "type": "vcs", "url": "https://github.com/laranail/db-console-webui" },
{ "type": "vcs", "url": "https://github.com/laranail/db-console" },
{ "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" },
{ "type": "composer", "url": "https://repo.packagist.org", "exclude": ["laranail/*"] },
{ "packagist.org": false }
]Then require it and run the installer:
composer require laranail/db-console-webui:^0.1
php artisan laranail::db-console-webui.installThe bare db-console-webui:install still works as a deprecated alias: it prints a deprecation line and runs laranail::db-console-webui.install.
The installer publishes the config, views, and language files. Build the CSS/JS entrypoints (resources/css/db-console.css, resources/js/db-console.js) into your app's Vite pipeline, or publish and adapt them.
The UI mounts at /db-console (configurable) and is guarded by the EnsureCanManage middleware: the caller must be signed in, hold a DBConsole permission, and — when configured — come from an allow-listed IP. Every action is still authorized inside the core services.
-
Install and configure the core,
laranail/db-console, first: register your servers and run its install. -
Build the entrypoints into your app's Vite pipeline:
// vite.config.js laravel({ input: ["resources/css/db-console.css", "resources/js/db-console.js", ...] })
-
Optionally move the mount point or turn on Flux Pro components in
.env:DB_CONSOLE_WEBUI_PATH=db-console DB_CONSOLE_WEBUI_FLUX_PRO=false
{{-- resources/views/layouts/partials/admin-nav.blade.php --}}
@can('laranail-db-console.database.view')
<a href="{{ route('laranail-db-console-webui.dashboard') }}">Databases</a>
<a href="{{ route('laranail-db-console-webui.accounts') }}">Database accounts</a>
@endcanRoute names are laranail-db-console-webui.<page> (dashboard, databases, accounts, roles, webhooks), and Livewire components laranail-db-console-webui.<name>. The bare db-console-webui.<page> route names and db-console-webui.<name> components are deprecated aliases that still work; Route::has() and routeIs() see only the scoped route names. Views and translations answer to laranail/db-console-webui::.
The full walkthrough is in Getting started; everything else is in the documentation index.
Full documentation is hosted at https://opensource.simtabi.com/documentation/laranail/db-console-webui/.
- Installation — install, mount the UI, wire the assets, guard access.
- Getting started — the screens and what each one does.
- Configuration — every
laranail.db-console-webui.*key. - Architecture — the boundary, and why the UI holds no logic.
- Release — how a version is cut, and the SBOM each release carries.
- Components — the Livewire components and the core services each calls.
- Middleware —
EnsureCanManageand access control.
Pre-1.0, tracking laranail/db-console. Breaking changes are in UPGRADING.md and the CHANGELOG.
composer install # resolves laranail/db-console from Packagist
vendor/bin/pest # component + boundary tests
composer lint # Pint, PHPStan, RectorTo develop against unreleased laranail/db-console changes, add a local path repository for it (composer config repositories.db-console path ../db-console) — this is a local-only override and is not committed.
laranail/db-console— the headless core this UI wraps.laranail/console,laranail/package-tools,laranail/enumerator— the shared toolkit.
Questions in GitHub Discussions; bugs in Issues.
See CONTRIBUTING.md. Report vulnerabilities per SECURITY.md: through GitHub private vulnerability reporting (preferred), or to security@simtabi.com, never in a public issue.
MIT — see LICENSE. Copyright (c) 2026 Simtabi LLC.