Skip to content

meilisearch/saas-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meilisearch

Meilisearch SaaS demo

Meilisearch is an open-source search engine that offers fast, relevant search out of the box.

💪 Looking to build this yourself?

Read our Complete guide to full-text search with Laravel!

✨ Features

This SaaS demo uses the following:

🧰 Stack

This project uses:

🧑‍💻 Development

This project uses Sail, a local development environment based on Docker compose.

Make sure to follow the Sail documentation and prefix commands accordingly to be able to run them in Docker.

Installation

Install PHP dependencies:

sail composer install

Install Node dependencies:

sail yarn

Launch Docker services for local development:

sail up

Run JavaScript dev server:

sail yarn dev

🛠️ Configuration

Copy .env.example as .env and update environment variables as needed.

Using Meilisearch with Laravel Sail

When running Meilisearch through Sail, your MEILISEARCH_HOST should follow the http://meilisearch:port form (instead of localhost:port.) However, your front-end application expect the real URL to your Meilisearch instant.

This means that when running Meilisearch locally with Sail, your .env file will look like:

# This is the URL used by Laravel to access Meilisearch
MEILISEARCH_HOST=http://meilisearch:7700

# This is the URL used by JavaScript to access Meilisearch
VITE_MEILISEARCH_HOST=http://localhost:7700

See Sail documentation.

Instructions

Setup your Meilisearch settings by running:

artisan scout:sync-index-settings

Seed the database:

artisan migrate:fresh --seed

Conventions

Blade

This project uses the Blade Formatter VS code extension to format .blade.php files.

JavaScript and Vue

This project uses ESLint to lint JavaScript and Vue files.

An error with Eslint requires to have resolutions key in the package.json file:

"resolutions": {
  "strip-ansi": "6.0.1"
},