Overview
Discover what makes ZincSearch powerful
ZincSearch is a lightweight, self‑hosted full‑text search engine engineered to replace Elasticsearch for application‑search workloads. Built in Go, it bundles a single statically compiled binary that runs on any platform with minimal dependencies. The core indexing engine is powered by **Bluge**, a pure‑Go library inspired by Lucene, which provides efficient inverted index structures while keeping memory footprints low. ZincSearch exposes a subset of the Elasticsearch REST API, enabling seamless ingestion through single‑document and bulk endpoints without requiring any client SDK changes. The search experience is delivered via a Vue‑based web UI that offers query building, aggregation visualization, and user management.
Full‑text indexing
Schema‑less design
Elasticsearch‑compatible APIs
Aggregation support
Overview
ZincSearch is a lightweight, self‑hosted full‑text search engine engineered to replace Elasticsearch for application‑search workloads. Built in Go, it bundles a single statically compiled binary that runs on any platform with minimal dependencies. The core indexing engine is powered by Bluge, a pure‑Go library inspired by Lucene, which provides efficient inverted index structures while keeping memory footprints low. ZincSearch exposes a subset of the Elasticsearch REST API, enabling seamless ingestion through single‑document and bulk endpoints without requiring any client SDK changes. The search experience is delivered via a Vue‑based web UI that offers query building, aggregation visualization, and user management.
Key Features
- Full‑text indexing with tokenization, stemming, and n‑gram support out of the box.
- Schema‑less design – documents in the same index may contain arbitrary fields; field types are inferred on first write.
- Elasticsearch‑compatible APIs for ingestion and search, making it a drop‑in replacement for existing pipelines.
- Aggregation support (terms, histograms, date histograms) comparable to Elasticsearch’s aggregation framework.
- Authentication & RBAC built‑in, with support for LDAP and OAuth through extensions.
- Disk‑backed storage; indexes are persisted to local file system, enabling fast cold starts.
- Zero‑config – a single binary with no external services; everything is configurable via environment variables or a JSON config file.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Go 1.22 (static binary) |
| Indexing | Bluge (inverted index, compression) |
| HTTP API | Standard Go net/http with Gorilla Mux routing |
| Web UI | Vue 3 + Vite, Axios for API calls |
| Authentication | JWT + optional LDAP/OAuth adapters |
| Storage | File system (index files), optional S3‑compatible object stores via plugin |
| Testing | Go test + Codecov integration |
The choice of Go ensures low runtime overhead, fast startup times (under 5 s for a fresh index), and excellent cross‑platform binaries. Bluge’s compact on‑disk format keeps the memory usage below 1 GB for typical workloads, making ZincSearch ideal for resource‑constrained environments.
Core Capabilities & APIs
- Ingestion:
PUT /index/_doc/{id}for single documents andPOST /index/_bulkwith newline‑delimited JSON. - Search: Standard
GET /index/_searchwith query DSL compatible with Elasticsearch’s Query DSL (bool, match, term, range). - Aggregations:
aggsfield supports terms, histograms, date_histogram, and percentile ranks. - Index Management:
PUT /indexto create an index,DELETE /indexto drop it. - Snapshot/Restore: REST endpoints for creating index snapshots and restoring them from local or remote storage.
- Webhooks: Custom webhook triggers on document creation, update, or deletion for real‑time integrations.
- Plugin System: Go plugins can extend the server with new authentication providers, custom analyzers, or external storage backends.
Deployment & Infrastructure
ZincSearch is designed for easy self‑hosting:
- Containerization: Official Docker images are available; a single container runs the server and UI.
- High Availability: Multiple instances can be run behind a load balancer; the index is shared via NFS or S3‑compatible object storage for read replicas.
- Scalability: Benchmarks show linear scaling with additional CPU cores; memory consumption grows linearly with index size.
- Resource Footprint: A typical 10 GB dataset runs comfortably on a 2‑core, 4 GB RAM VM.
- Monitoring: Prometheus metrics are exposed on
/metrics; integration with Grafana dashboards is straightforward.
Integration & Extensibility
Developers can hook ZincSearch into existing stacks with minimal friction:
- SDK Compatibility: Existing Elasticsearch clients (Python, Java, Node) work without modification.
- Webhooks & Callbacks: Trigger external services on data changes, enabling real‑time analytics pipelines.
- Custom Analyzers: Extend the default analyzer set by registering Go plugins that implement the
Analyzerinterface. - UI Customization: The Vue UI is open source; developers can fork and add custom panels or modify query builders.
- OpenTelemetry: ZincSearch exposes trace data compatible with OpenTelemetry collectors for distributed tracing.
Developer Experience
- Documentation: Comprehensive online docs (https://zincsearch-docs.zinc.dev/) cover API reference, configuration, and migration guides.
- Community: Active GitHub discussions, a public Slack channel, and regular releases (semantic versioning).
- Testing: High test coverage (~90%) with Codecov badges; CI pipelines ensure stability before every release.
- Configuration: Environment‑driven settings (e.g.,
ZINC_INDEX_DIR,ZINC_AUTH_ENABLED) allow zero‑touch deployments on Kubernetes or bare metal. - Extensibility: The plugin architecture encourages community contributions; several authentication and storage plugins already exist.
Use Cases
- App Search – Embed a search bar in SaaS products or internal tools
Open SourceReady to get started?
Join the community and start self-hosting ZincSearch today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Neko
Virtual browser in a container, WebRTC‑powered
Starbase 80
Self-hosted other
Paperless-ngx
Turn paper into a searchable digital archive
LibreTranslate
Open‑source, self‑hosted machine translation API
Flare
Lightning-fast, self-hosted file sharing with screenshot integration
BTCPay Server
Self‑hosted Bitcoin payment processor, zero fees, no middleman
