mercurius is a real-time messenger system using Laravel and Vue.js, featuring a complete application that you can easily install with any Laravel project.
You can try a demo of mercurius. Authenticate using any of the following credentials:
Password: password
Tip: Open 2 different browsers and login with different usernames, so you can test send/receiving messages.
Make sure Laravel 5.6
+ is installed before proceed.
If you don't have an account, create a free one on pusher.com website. Go to the dashboard, create a new app and take note of the API credentials.
Now, let's add the API keys to the .env
file.
Also, change the BROADCAST_DRIVER
to pusher
(default is log
).
...
BROADCAST_DRIVER=pusher
...
PUSHER_APP_ID="xxxxxx"
PUSHER_APP_KEY="xxxxxxxxxxxxxxxxxxxx"
PUSHER_APP_SECRET="xxxxxxxxxxxxxxxxxxxx"
PUSHER_APP_CLUSTER="xx"
BroadcastServiceProvider
Open config/app.php
and uncomment the line AppProvidersBroadcastServiceProvider::class,
.
Skip this step if authentication is already setup, otherwise type:
php artisan make:auth
composer require launcher/mercurius
If you want to change the default configuration, publish the config file, by typing the command:
php artisan vendor:publish --tag=mercurius-config
For editing the config, open /config/mercurius.php
and add your own values.
return [
/*
|--------------------------------------------------------------------------
| mercurius Models
|--------------------------------------------------------------------------
|
| Defines the models used with mercurius, use it to extend mercurius and
| create your own implementation.
|
*/
'models' => [
'user' => AppUser::class,
'messages' => LaunchermercuriusModelsMessage::class,
],
/*
|--------------------------------------------------------------------------
| User Table Fields
|--------------------------------------------------------------------------
|
| You can specify the column names for the user table. The `name` accepts
| an array of fields, for building custom names with multiple columns.
|
*/
'fields' => [
// 'name' => ['first_name', 'last_name'],
'name' => 'name',
'slug' => 'slug',
'avatar' => 'avatar',
],
];
php artisan mercurius:install
composer dump-autoload
Add LaunchermercuriusmercuriusUser
trait to your User
model:
// ...
use IlluminateFoundationAuthUser as Authenticatable;
use LaunchermercuriusmercuriusUser;
class User extends Authenticatable
{
use mercuriusUser;
// ...
}
php artisan db:seed --class=mercuriusDatabaseSeeder
Will add Messages and Users to the system, like in the demo example:
Demo Users:
[email protected]
[email protected]
[email protected]
Password: password
Whenever you update mercurius, make sure to publish assets to apply the new versions of CSS/JS.
php artisan vendor:publish --tag=mercurius-public --force
Please see Customization for more information.
Check the roadmap for more information.
Please see CONTRIBUTING for more information.
We keep a CHANGELOG with the information that has changed.
Copyright 2018 Bruno Torrinha. mercurius is released under the MIT License.