metafroliclabs / laravel-chat
A powerful and customizable chat system built for Laravel applications. This package supports private and group chats, media sharing, chat settings, user roles, activity messages, and more.
Requires
- php: ^8.1
This package is auto-updated.
Last update: 2025-06-12 09:52:26 UTC
README
Laravel Chat Package
A powerful and customizable chat system built for Laravel applications. This package supports private and group chats, media sharing, chat settings, user roles, activity messages, and more.
🚀 Features
- Private & Group Chat
- Message types: message, activity
- User roles: admin, user
- Group settings (permissions control)
- Message read/unread tracking
- Activity messages: group creation, joins, leaves, settings changes
- Media upload support
- Configurable user info: name, avatar
- Extendable & clean architecture (Service-based)
📦 Installation
composer require metafroliclabs/laravel-chat
Publish configuration file & run migrations:
php artisan vendor:publish --tag=chat-config php artisan migrate
📁 File Uploads
Supports media upload (image, video, file).
Make sure storage is linked:
php artisan storage:link
⚙️ Configuration
Customize settings in config/chat.php
:
Enable or disable pagination:
'pagination' => true,
Automatically generated for:
- Group creation
- User added/removed
- Group settings updated
- User left the chat
You can disable all activity messages globally:
'enable_activity_messages' => false,
Define how user information (name and avatar) is retrieved:
'user' => [ 'name_cols' => ['first_name', 'last_name'], // Columns to build full name 'image_col' => 'avatar', // Column for profile picture 'enable_image_url' => true, // If true, image will be URL ],
🧠 Usage
📚 API Endpoints
All routes are prefixed by the config value chat.prefix
(default: chat) and use the chat.middleware
middleware group.
Middleware: auth:sanctum
is required.
🔍 Chat List & Info
Method | Endpoint | Description |
---|---|---|
GET | /all/list |
Get all chats for the user |
GET | /unread/list |
Get all unread chats |
GET | /unread/count |
Get unread chat count |
🛠️ Chat Management
Method | Endpoint | Description |
---|---|---|
POST | /create |
Create private chat |
POST | /create/group |
Create group chat |
POST | /{id}/update |
Update chat name/image/settings |
POST | /{id}/delete |
Delete a chat |
POST | /{id}/leave |
Leave group chat |
POST | /{id}/mute |
Mute/unmute chat |
GET | /{id} |
Chat detail |
👥 User Management
Method | Endpoint | Description |
---|---|---|
GET | /{id}/users |
Get all users in the chat |
POST | /{id}/users/add |
Add users to a group |
POST | /{id}/users/remove |
Remove users |
POST | /{id}/users/{uid}/admin |
Promote/demote user to/from admin |
💬 Messaging
Method | Endpoint | Description |
---|---|---|
GET | /{id}/messages |
Get all messages in a chat |
POST | /{id}/messages |
Send a new message |
POST | /{id}/messages/{mid}/update |
Update a message |
POST | /{id}/messages/{mid}/delete |
Delete a message |
💖 Reactions & Views
Method | Endpoint | Description |
---|---|---|
GET | /{id}/messages/{mid}/likes |
Get users who liked a message |
POST | /{id}/messages/{mid}/likes |
Like/unlike a message |
GET | /{id}/messages/{mid}/views |
Get users who viewed a message |
POST | /{id}/messages/{mid}/views |
Mark message as viewed |
📄 License
This project is licensed under the MIT License.