Servicedeskkitv3
#ServiceDeskKit Start Kit Filament 3.x and Laravel 12.x
#About ServiceDeskKit
ServiceDeskKit is a robust starter kit built on Laravel 12.x and Filament 3.x, designed to accelerate the development of modern web applications with a ready-to-use multi-panel structure.
#Features
- Laravel 12.x - The latest version of the most elegant PHP framework
- Filament 3.x - Powerful and flexible admin framework
- Multi-Panel Structure - Includes four pre-configured panels:
- Admin Panel (
/admin) - For system administrators - Agent Panel (
/agent) - For support operators/agents - App Panel (
/app) - For authenticated application users - Guest Panel (
/) - Public frontend interface for visitors
- Admin Panel (
- Environment Configuration - Centralized configuration through the
config/servicedeskkit.phpfile
#System Requirements
- PHP 8.2 or higher
- Composer
- Node.js and PNPM
#Installation
Clone the repository
laravel new my-app --using=jeffersongoncalves/servicedeskkitv3 --database=mysql
#Using FilaKit CLI
Or use FilaKit CLI for a simplified setup:
filakit new my-app --kit=jeffersongoncalves/servicedeskkitv3
Install FilaKit CLI:
composer global require jeffersongoncalves/filakit-cli
#Easy Installation
ServiceDeskKit can be easily installed using the following command:
php install.php
This command automates the installation process by:
- Installing Composer dependencies
- Setting up the environment file
- Generating application key
- Setting up the database
- Running migrations
- Installing Node.js dependencies
- Building assets
- Configuring Herd (if used)
#Manual Installation
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
Build frontend assets
pnpm run build
Run the server
php artisan serve
#Installation with Docker
Clone the repository
laravel new my-app --using=jeffersongoncalves/servicedeskkitv3 --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
#Authentication Structure
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 |
#Development
# 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
#Customization
#Panel Configuration
Panels can be customized through their respective providers:
app/Providers/Filament/AdminPanelProvider.phpapp/Providers/Filament/AgentPanelProvider.phpapp/Providers/Filament/AppPanelProvider.phpapp/Providers/Filament/GuestPanelProvider.php
Alternatively, these settings are also consolidated in the config/servicedeskkit.php file for easier management.
#Themes and Colors
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.
#Configuration File
The config/servicedeskkit.php file centralizes the configuration of the starter kit, including:
- Panel routes
- Middleware for each panel
- Branding options (logo, colors)
- Authentication guards
#User Profile — joaopaulolndev/filament-edit-profile
This project already comes with the Filament Edit Profile plugin integrated for the Admin, Agent and App panels. It adds a complete profile editing page with avatar, security (Sanctum tokens), browser sessions, and email/password change.
- Routes (defaults in this project):
- Admin: /admin/my-profile
- Agent: /agent/my-profile
- App: /app/my-profile
- Navigation: by default, the page does not appear in the menu (shouldRegisterNavigation(false)). If you want to show it in the sidebar menu, change it to true in the panel provider.
Where to configure
-
Panel providers
- Admin: app/Providers/Filament/AdminPanelProvider.php
- Agent: app/Providers/Filament/AgentPanelProvider.php
- App: app/Providers/Filament/AppPanelProvider.php In these files you can adjust:
- ->slug('my-profile') to change the URL (e.g., 'profile')
- ->setTitle('My Profile') and ->setNavigationLabel('My Profile')
- ->setNavigationGroup('Group Profile'), ->setIcon('heroicon-o-user'), ->setSort(10)
- ->shouldRegisterNavigation(true|false) to show/hide it in the menu
- Shown forms: ->shouldShowEmailForm(), ->shouldShowSanctumTokens(), ->shouldShowBrowserSessionsForm(), ->shouldShowAvatarForm()
-
General settings: config/filament-edit-profile.php
- avatar_column: avatar column (default: avatar_url)
- disk: storage disk used for the avatar (default: public)
- visibility: file visibility (default: public)
Migrations and models
- The required columns are already included in this kit's default migrations (users and admins): avatar_url, using the names defined in config/filament-edit-profile.php.
- The App\Models\User and App\Models\Admin models already read the avatar using the plugin configuration (getFilamentAvatarUrl).
Avatar storage
- Make sure the filesystem disk is configured and that the storage link exists: php artisan storage:link
- Adjust the disk and visibility in the config file according to your infrastructure.
Quick access
- Via direct URL: /admin/my-profile, /agent/my-profile or /app/my-profile
- To make it visible in the sidebar navigation, set shouldRegisterNavigation(true) in the respective Provider.
Reference
- Plugin repository: https://github.com/joaopaulolndev/filament-edit-profile
#Service Desk Plugin — filament-service-desk
ServiceDeskKit comes with the filament-service-desk plugin pre-installed, providing a complete helpdesk and support ticket system fully integrated into the Filament panels.
#Features
- Ticket Management — Create, assign, track, and resolve support tickets with comments, attachments, and full history
- SLA Policies — Define response and resolution time targets with automatic breach detection and escalation rules
- Knowledge Base — Publish articles organized by categories with versioning, feedback, and view tracking
- Service Catalog — Offer a catalog of services with custom form fields and approval workflows
- Departments & Categories — Organize tickets by department and category for better routing
- Canned Responses — Pre-defined response templates for common questions
- Business Hours — Configure work schedules that SLA calculations respect
- Email Channels — Receive tickets via email with support for IMAP, Mailgun, SendGrid, Resend, and Postmark
- Tags — Flexible tagging system for tickets
#Panel Integration
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 |
#Configuration Files
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)
#Key Settings in 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 ],
#Required Model Traits
The following traits must be added to your models (already configured in this kit):
App\Models\User— UsesJeffersonGoncalves\ServiceDesk\Concerns\HasTickets(allows users to create and manage their tickets)App\Models\Operator— UsesJeffersonGoncalves\ServiceDesk\Concerns\IsOperator(enables operator functionality: ticket assignment, department membership, etc.)
#Customization
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'),
#Reference
- Plugin repository: https://github.com/jeffersongoncalves/filament-service-desk
- Core package: https://github.com/jeffersongoncalves/laravel-service-desk
#Resources
ServiceDeskKit includes support for:
- User, operator, and admin management
- Multi-guard authentication system (admin, operator, web)
- Integrated helpdesk with tickets, SLA, knowledge base, and service catalog
- Tailwind CSS integration
- Database queue configuration
- Customizable panel routing and branding
#License
This project is licensed under the MIT License.
#Credits
Developed by Jefferson Gonçalves.