Laravel Voyager is a powerful admin panel package for Laravel that allows you to create and manage admin interfaces easily. It provides features such as CRUD (Create, Read, Update, Delete) management, a media manager, and more.
Step 1: Install Laravel
First, create a new Laravel project if you don’t have one:
bash
1 2 |
composer create-project --prefer-dist laravel/laravel laravel-voyager cd laravel-voyager |
Step 2: Set Up the Database
Configure your database settings in the .env
file:
dotenv
1 2 3 4 5 6 |
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_username DB_PASSWORD=your_password |
Step 3: Install Voyager
Install Voyager via Composer:
bash
1 |
composer require tcg/voyager |
Step 4: Publish Voyager Assets
Publish Voyager’s configuration and assets:
bash
1 |
php artisan voyager:install |
If you want to seed the database with dummy data (including user accounts), you can use:
bash
1 |
php artisan voyager:install --with-dummy |
Step 5: Configure Authentication
Voyager comes with its own user management. You can create an admin user using the following command:
bash
1 |
php artisan voyager:admin your@email.com --create |
You’ll be prompted to enter a password for the admin user.
Step 6: Access Voyager Admin Panel
Start your Laravel server:
bash
1 |
php artisan serve |
Visit http://localhost:8000/admin
in your browser. Use the admin credentials you created to log in.
Step 7: Create and Manage BREAD
BREAD stands for Browse, Read, Edit, Add, and Delete. Voyager allows you to create BREAD for your database tables easily.
- Create a New Table: You can create a new migration for a table using:
bash
1php artisan make:migration create_posts_table --create=postsDefine your table structure in the migration file and run:
bash
1php artisan migrate - Add BREAD: In the Voyager admin panel, navigate to Tools > Database. Select your newly created table and click BREAD.
- Configure BREAD: You can set up the fields, validation rules, and visibility options for your BREAD. This setup allows you to customize how the CRUD interface will look and function.
Step 8: Customize Voyager
Voyager provides various ways to customize your admin panel:
- Custom Views: You can create custom views for your BREAD by overriding Voyager’s default views.
- Custom Routes: Add custom routes in
routes/web.php
if you need additional functionality outside of the BREAD. - Menu Management: You can manage your admin panel’s navigation menu from the Voyager admin panel.
Step 9: Using the Media Manager
Voyager includes a media manager for uploading and managing files. You can access it via Media in the admin panel. You can configure the media settings in config/voyager.php
.
Step 10: User Roles and Permissions
Voyager allows you to manage user roles and permissions:
- Go to Tools > Roles in the admin panel.
- Create roles and assign permissions to each role for managing different parts of the admin panel.
Conclusion
Laravel Voyager simplifies the process of creating an admin panel with a powerful interface for managing your application’s backend. With its built-in features and customizable options, you can quickly set up a robust admin panel for your Laravel application. As you explore Voyager, consider leveraging its extensive documentation for advanced features and customization.
- Laravel Breeze – Simple authentication starter kit
- Laravel Jetstream – Scaffolding for Laravel apps
- Laravel Passport – API authentication via OAuth2
- Laravel Sanctum – Simple API authentication
- Spatie Laravel Permission – Role and permission management
- Laravel Cashier – Subscription billing with Stripe
- Laravel Scout – Full-text search using Algolia
- Laravel Socialite – OAuth authentication (Google, Facebook, etc.)
- Laravel Excel – Excel import and export for Laravel
- Laravel Horizon – Redis queues monitoring
- Laravel Nova – Admin panel for Laravel
- Laravel Fortify – Backend authentication for Laravel
- Laravel Vapor – Serverless deployment on AWS
- Laravel Telescope – Debugging assistant for Laravel
- Laravel Dusk – Browser testing
- Laravel Mix – API for compiling assets
- Spatie Laravel Backup – Backup management
- Laravel Livewire – Building dynamic UIs
- Spatie Laravel Media Library – Manage media uploads
- Laravel Excel – Excel spreadsheet handling
- Laravel Debugbar – Debug tool for Laravel
- Laravel WebSockets – Real-time communication
- Spatie Laravel Sitemap – Generate sitemaps
- Laravel Spark – SaaS scaffolding
- Laravel Envoy – Task runner for deployment
- Spatie Laravel Translatable – Multilingual model support
- Laravel Backpack – Admin panel
- Laravel AdminLTE – Admin interface template
- Laravel Collective Forms & HTML – Simplified form and HTML generation
- Spatie Laravel Analytics – Google Analytics integration
- Laravel Eloquent Sluggable – Automatically create slugs
- Laravel Charts – Chart integration
- Laravel Auditing – Track changes in models
- Laravel JWT Auth – JSON Web Token authentication
- Laravel Queue Monitor – Monitor job queues
- Spatie Laravel Query Builder – Filter, sort, and include relationships in Eloquent queries
- Laravel Datatables – jQuery Datatables API
- Laravel Localization – Multilingual support for views and routes
- Laravel Acl Manager – Access control list manager
- Laravel Activity Log – Record activity in your app
- Laravel Roles – Role-based access control
- Spatie Laravel Tags – Tagging models
- Laravel Installer – CLI installer for Laravel
- Laravel Breadcrumbs – Generate breadcrumbs in Laravel
- Laravel Mailgun – Mailgun integration for Laravel
- Laravel Trustup Model History – Store model change history
- Laravel Deployer – Deployment automation tool
- Laravel Auth – Custom authentication guards
- Laravel CORS – Cross-Origin Resource Sharing (CORS) support
- Laravel Notifications – Send notifications through multiple channels
- Spatie Laravel Http Logger – Log HTTP requests
- Laravel Permission Manager – Manage permissions easily
- Laravel Stubs – Customize default stubs in Laravel
- Laravel Fast Excel – Speed up Excel exports
- Laravel Image – Image processing
- Spatie Laravel Backup Server – Centralize backups for Laravel apps
- Laravel Forge API – Manage servers through the Forge API
- Laravel Blade SVG – Use SVGs in Blade templates
- Laravel Ban – Ban/unban users from your application
- Laravel API Response – Standardize API responses
- Laravel SEO – Manage SEO meta tags
- Laravel Settings – Store and retrieve settings
- Laravel DOMPDF – Generate PDFs
- Laravel Turbo – Full-stack framework for building modern web apps
- Spatie Laravel Event Sourcing – Event sourcing implementation
- Laravel Jetstream Inertia – Jetstream’s Inertia.js integration
- Laravel Envoy Tasks – Task automation
- Laravel Likeable – Like/dislike functionality
- Laravel GeoIP – Determine visitor’s geographic location
- Laravel Country State City – Dropdowns for country, state, and city
- Laravel Hashids – Generate short unique hashes
- Laravel Repository – Repository pattern for Laravel
- Laravel UUID – UUID generation for models
- Spatie Laravel Medialibrary Pro – Enhanced media management
- Laravel Queue Monitor – Monitor Laravel job queues
- Laravel User Activity – Monitor user activity
- Laravel DB Snapshots – Create database snapshots
- Laravel Twilio – Twilio integration
- Laravel Roles – Role-based permission handling
- Laravel Translatable – Add translations to Eloquent models
- Laravel Teamwork – Manage teams in multi-tenant apps
- Laravel Full Text Search – Add full-text search to Laravel models
- Laravel File Manager – File and media management
- Laravel User Timezones – Automatically detect user time zones
- Laravel ChartsJS – Render charts with ChartsJS
- Laravel Stripe – Stripe API integration
- Laravel PDF Generator – PDF generation
- Laravel Elasticsearch – Elasticsearch integration
- Laravel Simple Qrcode – Generate QR codes
- Laravel Timezone – Manage timezones and conversions
- Laravel Collective API – API management for Laravel
- Laravel Rest API Boilerplate – REST API starter kit
- Laravel Multi Auth – Multi-authentication functionality
- Laravel Voyager – Admin panel for Laravel
- Laravel Voyager Database – Database manager for Voyager
- Laravel Categories – Handle categories for models
- Laravel Multitenancy – Multi-tenancy implementation
- Laravel Access Control – Advanced access control for users
- Laravel Menus – Menu management
- Laravel Translatable Routes – Multilingual route handling