MiniSearch / docs /quick-start.md
github-actions[bot]
Sync from https://github.com/felladrin/MiniSearch
6ace587
|
Raw
History Blame Contribute Delete
4.92 kB
# Quick Start
## Prerequisites
- Docker Desktop or Docker Engine
- Node.js LTS (for local development only)
- Git
- Modern browser with WebGPU support (for optimal AI performance)
## Installation & Running
### Development (Recommended for Contributing)
```bash
# Clone the repository
git clone https://github.com/felladrin/MiniSearch.git
cd MiniSearch
# Start all services (SearXNG, Node.js app with HMR)
docker compose up
```
Access the application at `http://localhost:7861` (HMR) or `http://localhost:7860` (main)
The development server includes:
- Hot Module Replacement (HMR) on port 7861 for instant code changes
- Full dev tools and source maps
- Live code watching with volume mounts
- Integrated SearXNG search service
- Biome formatting and linting on save
### Production
```bash
# Build and start production containers
docker compose -f docker-compose.production.yml up --build
```
Access at `http://localhost:7860`
Production mode:
- Pre-built optimized assets
- No dev tools or HMR
- Optimized Docker layer caching
## Container Internals
The Docker container runs three services concurrently:
- **SearXNG** - Privacy-focused metasearch engine (starts in background)
- **ONNX Runtime** - In-process inference for result reranking
- **Node.js (Vite)** - Main application server
### Startup Sequence
1. SearXNG webapp launches in background from `/usr/local/searxng/searxng-src`
2. Node.js server starts (dev: `npm run dev` with HMR; production: `npm start -- --host`)
Development mode overrides the container command to run `npm install && npm run dev` before starting.
### Port Configuration
| Port | Service | Variable | Notes |
|------|---------|----------|-------|
| 7860 | Node.js (Vite) | `PORT` | Main application (both dev and production) |
| 7861 | HMR | `HMR_PORT` | Vite HMR server (development only) |
| 8888 | SearXNG | - | Internal metasearch engine (not exposed) |
## First Configuration
### No Configuration Required (Default)
MiniSearch works out of the box with browser-based AI inference. Search works immediately, and AI responses use on-device models via Wllama (WebGPU-accelerated when available, CPU otherwise).
### Optional: Enable AI Response
1. Open the application
2. Click **Settings** (gear icon)
3. Toggle **Enable AI Response**
4. Choose inference type:
- **Browser** (recommended): Uses Wllama for local processing (WebGPU-accelerated when available)
- **Internal API**: Configure OpenAI-compatible endpoint
- **AI Horde**: Pre-configured distributed computing
5. The app will download ~300MB-1GB model files on first use (browser mode)
6. Subsequent loads are instant (cached in IndexedDB)
### Optional: Restrict Access
Add access keys to prevent unauthorized usage:
```bash
# Create .env file
echo 'ACCESS_KEYS="my-secret-key-1,my-secret-key-2"' > .env
# Restart containers
docker compose up --build
```
Users will be prompted to enter an access key before using the app.
## Development Without Docker
```bash
# Install dependencies
npm install
# Start development server
npm run dev
# In another terminal, start SearXNG (or use standalone instance)
# See SearXNG documentation for setup
```
Access at `http://localhost:7860`
**Note**: Running without Docker requires manual SearXNG setup and environment configuration.
## Verification
### Test Search
1. Enter any query in the search box
2. Press Enter or click Search
3. Results should appear within 2-5 seconds
### Test AI Response
1. Toggle "Enable AI Response" in Settings
2. Search for "What is quantum computing?"
3. After search results load, an AI-generated response should appear with citations
### Test Chat
1. After getting an AI response
2. Type a follow-up question like "Tell me more"
3. The AI should respond using conversation context
## Common Issues
### Issue: Search returns no results
**Solution**: Verify SearXNG is running. Check container logs:
```bash
docker compose logs searxng
```
### Issue: AI response never loads
**Solution**: Check browser console for errors. Common causes:
- WebGPU not supported (app will automatically fall back to Wllama)
- Model download blocked by firewall or CORS
- Insufficient disk space for model caching
- Browser extensions blocking WebAssembly
- Try switching inference types in Settings
### Issue: Access key not working
**Solution**: Ensure `ACCESS_KEYS` is set in `.env` file and containers were rebuilt with `--build` flag.
### Issue: Port already in use
**Solution**: Change ports in `docker-compose.yml`:
```yaml
ports:
- "7862:7861" # Use 7862 instead of 7860 (HMR port)
```
## Next Steps
- **Customize AI**: See `docs/ai-integration.md` for model selection and inference options
- **Configure**: See `docs/configuration.md` for all environment variables and settings
- **Architecture**: See `docs/overview.md` for system design
- **Contributing**: See `docs/pull-requests.md` for development workflow