Prerequisites

Before installing QuickSearch, ensure you have the following:

Requirement Version Purpose
Node.js 18+ or 20 Runtime for QuickSearch
Meilisearch Latest (v1.x) Search engine backend
npm 9+ Package manager
SQLite Built-in User database (included)
Recommendation: Use Docker for the easiest installation. It includes Meilisearch and all dependencies.

Docker Installation (Recommended)

This is the fastest way to get QuickSearch running with all dependencies.

Step 1: Clone the Repository
Terminal
git clone <your-repository-url>
cd quick-search/src
Step 2: Configure Environment
Terminal
# Copy the example environment file
cp .env.example .env

# Edit with your preferred editor
nano .env
Step 3: Start with Docker Compose
Terminal
# Build and start all services
docker-compose up -d

# Check service status
docker-compose ps

# View logs
docker-compose logs -f
Success! QuickSearch is now running at http://localhost:3000
Docker Management Commands
docker-compose ps

Check service status

docker-compose logs -f

Follow logs in real-time

docker-compose restart

Restart services

docker-compose down

Stop services

docker-compose down -v

Stop and remove volumes

docker-compose exec app npm run setup-admin

Create admin user

Manual Installation

For development or custom deployments without Docker.

Step 1: Install Meilisearch
macOS (Homebrew)
brew install meilisearch
Linux
curl -L https://install.meilisearch.com | sh
Start Meilisearch
meilisearch --master-key=your-master-key
Step 2: Install Dependencies
Terminal
cd src
npm install
Step 3: Setup Database
Terminal
# Generate Prisma client
npx prisma generate

# Run database migrations
npx prisma migrate deploy
Step 4: Create Admin User (Optional)
Terminal
npm run setup-admin
Step 5: Start Development Server
Terminal
# Standard mode
npm run dev

# Multi-threaded mode (for high throughput)
npm run dev:multi
Success! QuickSearch is now running at http://localhost:3000

Configuration

Configure QuickSearch by editing the .env file:

.env
# Authentication
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
[email protected]
DEFAULT_ADMIN_PASSWORD=admin123

# Google OAuth (optional)
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret

# Meilisearch
MEILISEARCH_HOST=http://localhost:7700
MEILISEARCH_API_KEY=masterkey

# Performance Tuning
MEILISEARCH_BATCH_SIZE=1000
MEILISEARCH_SYSLOG_DELAY=60000
MEILISEARCH_API_DELAY=15000
MEILISEARCH_ENABLE_MULTI_THREADING=true
MEILISEARCH_MAX_WORKERS=0

# Application
PORT=3000
NUXT_PUBLIC_APP_URL=http://localhost:3000
Configuration Reference
Variable Default Description
JWT_SECRET required Secret key for JWT tokens
MEILISEARCH_HOST http://localhost:7700 Meilisearch server URL
MEILISEARCH_BATCH_SIZE 1000 Batch size for indexing
MEILISEARCH_MAX_WORKERS 0 (auto) Worker threads (0 = auto-detect)
PORT 3000 Application port

Verify Installation

After installation, verify everything is working:

Web Interface

Open your browser:

http://localhost:3000
Health Check

Check API status:

GET /api/buffer-status
Test API Connection
Terminal
# Check buffer status
curl http://localhost:3000/api/buffer-status

# Search for events
curl "http://localhost:3000/api/events?limit=10"
Note: For production deployment, always change the default JWT secret and admin password.