Skip to content

An MQTT Client built with Laravel, Livewire and WebSockets.

Notifications You must be signed in to change notification settings

OussamaMater/Laravel-MQTT-Client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Setup Guide

Overview

An MQTT Client built with Laravel, Livewire and WebSockets, providing a set of features:

  • A full-featured login system (login, register, email verification, profile update, and password reset).
  • The ability to create, manage and use multiple connections to different brokers (public/private).
  • The ability to subscribe and manage different topics on each connection with real-time updates.
  • Logs that display all the received payloads and the ability to search, filter, and delete them.

app showcase

Manual Setup

You can avoid this configurational step by using the Docker installation process.

Before setting up the project, make sure you have the required dependencies:

  • PHP >= 8.0
  • composer
  • npm
  • MySQL
  • MailHog

Installing Dependencies

The following example works for Debian Based Linux Distributions.

Update the system

sudo apt update && sudo apt upgrade -y

Install PHP

sudo apt get install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath

Install composer

curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Install npm

sudo apt install nodejs npm

Install MySQL

sudo apt install mysql-server

Install MailHog

sudo apt-get -y install golang-go
go install github.com/mailhog/MailHog@latest

Setting the project

Make sure you are in the src directory

cd src/

Install composer dependencies

composer install

Install npm dependencies and build the assets

npm install
npm run build

Create the .env file and generate the application encryption key

cp .env.example .env
php artisan key:generate

Update the .env file with your mysql credentials and MailHog host

DB_CONNECTION=mysql
DB_HOST=127.0.0.1 # old value: mysql
DB_PORT=3306
DB_DATABASE=# your database
DB_USERNAME=# your username
DB_PASSWORD=# your password

MAIL_HOST=127.0.0.1 # old value: mailhog

Update the package.json file by swapping the scripts section with the one below

"scripts": {
    "dev": "vite",
    "build": "vite build"
},

Create the database schema and its tables by running the migrations

php artisan migrate

Running the project

Start MySQL server

sudo systemctl start mysql

Start MailHog

~/go/bin/MailHog

Start the built-in web server

php artisan serve

You can now access the server at http://localhost:8000.

Docker Setup

Make sure Docker is installed.

The .env.example you copied is already configured to be used with Docker, please don't change the configuration.

If you are using a Windows 10/11, you need to know that Windows uses WSL (Windows Subsystem for Linux), which is a layer between Windows and Linux, this makes Docker slow and browser requests may take 30-60 seconds to be completed.

Spin up the containers

docker-compose up -d --build app

Running the command will expose 4 services with the following ports:

  • Nginx - :80
  • MySQL - :3306
  • PHP - :9000
  • MailHog - :8025

Install composer dependencies

docker-compose run --rm composer install

Install npm dependencies and build the assets

docker-compose run --rm npm install
docker-compose run --rm --service-ports npm run build

Create the .env file and generate the application encryption key

cp .env.example .env
docker-compose run --rm php artisan key:generate

Create the database schema and its tables by running the migrations

docker-compose run --rm artisan migrate

You can now access the server at http://localhost.

About

An MQTT Client built with Laravel, Livewire and WebSockets.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published