laravolt / metabase
Embed Metabase dashboard and question in your application
Requires
- php: ^8.3
- firebase/php-jwt: ^7.2
- illuminate/support: ^12.68|^13.29
Requires (Dev)
- orchestra/testbench: ^10.0|^11.0
- phpunit/phpunit: ^12.5|^13.4
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-11-07 17:32:52 UTC
README
Blade component to embed metabase dashboard or question in your website. For more information about Metabase, please visit Metabase official website.
Installation
composer require laravolt/metabase
Add following entries to config/services.php:
'metabase' => [ 'url' => env('METABASE_URL'), 'secret' => env('METABASE_SECRET'), ],
And finally, update your .env file:
METABASE_URL=https://metabase.example.com METABASE_SECRET=secret
Metabase secret key can be found in metabase settings page (only accessible by admin).
Visit https://www.metabase.com/docs/latest/administration-guide/13-embedding.html for more information.
Usage
<!-- embed dashboard --> <x-metabase dashboard="1"></x-metabase> <!-- embed question --> <x-metabase question="2"></x-metabase> <!-- passing html attributes --> <x-metabase question="2" width="80%" height="500px"></x-metabase> <!-- passing metabase parameters --> @php($params = ['category' => 'php']) <x-metabase dashboard="1" :params="$params"></x-metabase> // BEWARE of the colon in ":params" (not "param") because we are passing array variable directly to the component <!-- passing additional metabase parameters --> <x-metabase dashboard="1" :params="$params" :bordered="false" titled theme="night"></x-metabase>
Embed route (opt-in)
The package can register GET /metabase/embed/{id}, which signs an embed for the dashboard id in the URL.
It is off by default because it signs any id the caller asks for. Turn it on only behind middleware that checks the viewer may see those dashboards:
METABASE_ROUTE_ENABLED=true
// config/metabase.php (publish with: php artisan vendor:publish --tag=metabase-config) 'route' => [ 'enabled' => env('METABASE_ROUTE_ENABLED', false), 'middleware' => ['web', 'auth', 'can:view-dashboards'], 'prefix' => 'metabase', ],
Common Problems
Embedding is not enabled for this object.
Solution: https://www.metabase.com/learn/embedding/embedding-charts-and-dashboards
Not found.
Invalid dashboard or question ID.
Message seems corrupt or manipulated.
Invalid secret key.