| Install | |
|---|---|
composer require jeffersongoncalves/servicedeskkitv4 |
|
| Latest Version: | 4.9.0 |
| PHP: | ^8.3 |

ServiceDeskKit is a robust starter kit built on Laravel 13.x and Filament 4.x, designed to accelerate the development of modern web applications with a ready-to-use multi-panel structure.
/admin) - For system administrators/agent) - For support operators/agents/app) - For authenticated application users/) - Public frontend interface for visitorsconfig/servicedeskkit.php fileClone the repository
laravel new my-app --using=jeffersongoncalves/servicedeskkitv4 --database=mysql
Or use FilaKit CLI for a simplified setup:
filakit new my-app --kit=jeffersongoncalves/servicedeskkitv4
Install FilaKit CLI:
composer global require jeffersongoncalves/filakit-cli
ServiceDeskKit can be easily installed using the following command:
php install.php
This command automates the installation process by:
Install JavaScript dependencies
pnpm install
Install Composer dependencies
composer install
Set up environment
cp .env.example .env
php artisan key:generate
Configure your database in the .env file
Run migrations
php artisan migrate
Run the server
php artisan serve
Clone the repository
laravel new my-app --using=jeffersongoncalves/servicedeskkitv4 --database=mysql
Move into the project directory
cd my-app
Install Composer dependencies
composer install
Set up environment
cp .env.example .env
Configuring custom ports may be necessary if you have other services running on the same ports.
# Application Port (ex: 8080)
APP_PORT=8080
# MySQL Port (ex: 3306)
FORWARD_DB_PORT=3306
# Redis Port (ex: 6379)
FORWARD_REDIS_PORT=6379
# Mailpit Port (ex: 1025)
FORWARD_MAILPIT_PORT=1025
Start the Sail containers
./vendor/bin/sail up -d
You won't need to run php artisan serve, as Laravel Sail automatically handles the development server within the container.
Attach to the application container
./vendor/bin/sail shell
Generate the application key
php artisan key:generate
Install JavaScript dependencies
pnpm install
ServiceDeskKit comes pre-configured with a custom authentication system that supports different types of users:
Admin - For administrative panel access (/admin)Operator - For agent/support panel access (/agent)User - For application panel access (/app)Each user type has its own database table, model, guard, and authentication flow. Default test credentials (after seeding):
| User Type | Password | |
|---|---|---|
| Admin | admin@servicedeskkit.com | password |
| Operator | operator@servicedeskkit.com | password |
| User | user@servicedeskkit.com | password |
# Run the development server with logs, queues and asset compilation
composer dev
# Or run each component separately
php artisan serve
php artisan queue:listen --tries=1
pnpm run dev
Panels can be customized through their respective providers:
app/Providers/Filament/AdminPanelProvider.phpapp/Providers/Filament/AgentPanelProvider.phpapp/Providers/Filament/AppPanelProvider.phpapp/Providers/Filament/GuestPanelProvider.phpAlternatively, these settings are also consolidated in the config/servicedeskkit.php file for easier management.
Each panel can have its own color scheme, which can be easily modified in the corresponding Provider files or in the
servicedeskkit.php configuration file.
The config/servicedeskkit.php file centralizes the configuration of the starter kit, including:
This project already comes with the Filament Edit Profile plugin integrated for the Admin and App panels. It adds a complete profile editing page with avatar, language, theme color, security (tokens, MFA), browser sessions, and email/password change.
Where to configure
Panel providers
General settings: config/filament-edit-profile.php
Migrations and models
Avatar storage
Quick access
Reference
ServiceDeskKit comes with the filament-service-desk plugin pre-installed, providing a complete helpdesk and support ticket system fully integrated into the Filament panels.
The plugin provides three specialized plugin classes, each designed for a specific panel:
| Panel | Plugin Class | Features |
|---|---|---|
Admin (/admin) |
ServiceDeskPlugin |
Full management: tickets, departments, categories, tags, SLA, knowledge base, service catalog, email channels, canned responses, business hours, escalation rules |
Agent (/agent) |
ServiceDeskAgentPlugin |
Ticket handling: view assigned tickets, respond, use canned responses, manage SLA |
App (/app) |
ServiceDeskUserPlugin |
User portal: create tickets, view own tickets, browse knowledge base, request services from catalog |
config/filament-service-desk.php — Filament plugin settings (navigation, features toggle, resource/widget overrides)config/service-desk.php — Core settings (models, ticket options, SLA, knowledge base, service catalog, email, notifications)config/service-desk.php'models' => [
'user' => \App\Models\User::class, // Model that creates tickets
'operator' => \App\Models\Operator::class, // Model that handles tickets
],
'ticket' => [
'reference_prefix' => 'SD', // Ticket reference prefix (e.g., SD-00001)
'default_priority' => 'medium', // Default priority for new tickets
'max_file_size' => 10240, // Max attachment size in KB
],
'sla' => [
'enabled' => true,
'auto_apply' => true, // Automatically apply SLA policies
'near_breach_minutes' => 30, // Warning before SLA breach
],
The following traits must be added to your models (already configured in this kit):
App\Models\User — Uses JeffersonGoncalves\ServiceDesk\Concerns\HasTickets (allows users to create and manage their tickets)App\Models\Operator — Uses JeffersonGoncalves\ServiceDesk\Concerns\IsOperator (enables operator functionality: ticket assignment, department membership, etc.)You can override any resource or widget by specifying your custom class in config/filament-service-desk.php:
'resources' => [
'admin' => [
'ticket' => \App\Filament\Admin\Resources\CustomTicketResource::class,
// ...
],
],
Toggle features per-panel using fluent methods on the plugin:
ServiceDeskPlugin::make()
->knowledgeBase(true)
->sla(true)
->emailChannels(true)
->serviceCatalog(true)
->navigationGroup('Service Desk'),
ServiceDeskKit includes support for:
This project is licensed under the MIT License.
Developed by Jefferson Gonçalves.