MCPSERV.CLUB
Fess

Fess

Self-Hosted

Enterprise Search Server with Built‑in Crawler

Active(92)
1.1kstars
0views
Updated 3 hours ago
Fess screenshot 1
1 / 5

Overview

Discover what makes Fess powerful

Fess is a Java‑based, enterprise‑grade search server that builds on the OpenSearch engine while abstracting away most of its operational complexity. At runtime it exposes a RESTful API, a configurable web UI, and an administration console that can be used to define crawling jobs, index pipelines, security policies, and search widgets. The core of Fess is a tightly coupled crawler engine that can ingest content from web sites, file systems, Windows shares, and a variety of data stores (CSV, relational databases, Atlassian products, Box, etc.). This ingestion layer is pluggable and can be extended with custom extractors (OCR, NLP) or transformation pipelines written in Java.

Language & Runtime

Search Engine

Frameworks

Data Store

Overview

Fess is a Java‑based, enterprise‑grade search server that builds on the OpenSearch engine while abstracting away most of its operational complexity. At runtime it exposes a RESTful API, a configurable web UI, and an administration console that can be used to define crawling jobs, index pipelines, security policies, and search widgets. The core of Fess is a tightly coupled crawler engine that can ingest content from web sites, file systems, Windows shares, and a variety of data stores (CSV, relational databases, Atlassian products, Box, etc.). This ingestion layer is pluggable and can be extended with custom extractors (OCR, NLP) or transformation pipelines written in Java.

Architecture

  • Language & Runtime: Java 17+, fully platform‑independent.
  • Search Engine: OpenSearch (forked from Elasticsearch) – the underlying index, query planner, and cluster manager.
  • Frameworks: Spring Boot for the web layer, Thymeleaf for UI rendering, and a modular OSGi‑style plugin system for extensibility.
  • Data Store: OpenSearch cluster (single node or multi‑node), optional JDBC for metadata, and a lightweight embedded database (H2) for configuration.
  • Containerization: Official Docker images on GitHub Container Registry; a ready‑made docker-compose.yml supports multi‑service deployments (Fess, OpenSearch, Elasticsearch‑compatible node).
  • Security: Supports BASIC/DIGEST/NTLM/FORM authentication, LDAP/Active Directory, SAML/SOAP SSO, and role‑based access control for both the UI and REST API.

Core Capabilities

FeatureDescription
CrawlerConfigurable web, file, and data‑store crawlers with support for HTTP auth, custom headers, path mapping, and scheduling.
Indexing PipelinePre‑processing hooks (text extraction, OCR, metadata enrichment) and field mapping customization via YAML/JSON.
Search APIFull‑text search, faceted navigation, highlighting, auto‑complete, and suggestion endpoints; query DSL compatible with OpenSearch.
Admin UIDrag‑and‑drop configuration, real‑time monitoring of crawler jobs, cluster health dashboards, and API key management.
ExtensibilityPlugin SDK (Java SPI) for custom crawlers, extractors, and response handlers; webhooks for event notifications.
EmbeddingJavaScript widgets (search box, results list) that can be dropped into existing web pages; API for site search integration.

Deployment & Infrastructure

Fess is designed for self‑hosting, allowing developers to keep data on-premises or within a private cloud. A single-node Docker container is sufficient for development and small deployments; production clusters can be scaled horizontally by adding OpenSearch nodes behind a load balancer. The Docker image includes all dependencies, so there is no need for manual Java or OpenSearch installation. For environments that require high availability, the docker-compose setup can be extended with Elasticsearch or OpenSearch clusters and Zookeeper for coordination. The application’s configuration is stored in a relational database (default H2), which can be swapped out for PostgreSQL or MySQL without code changes.

Integration & Extensibility

Developers can extend Fess through its SPI plugin system. A typical workflow involves implementing the CrawlerPlugin, ExtractorPlugin, or ResponseHandlerPlugin interfaces and packaging the code as a JAR placed in the plugins/ directory. The Admin UI exposes plugin configuration, and plugins can register custom REST endpoints or scheduled tasks. Fess also offers webhooks for events such as document ingestion completion, which can trigger downstream processes (e.g., notifying a CI pipeline). The search API is fully compatible with OpenSearch’s REST interface, enabling integration with existing analytics or monitoring tools.

Developer Experience

  • Configuration: YAML/JSON files for crawler and index settings; UI wizard for common tasks.
  • Documentation: Comprehensive online docs (installation, admin guide, API reference) with code examples and best‑practice sections.
  • Community: Active GitHub repository, discussion forum, and a Slack channel for real‑time support.
  • Licensing: Apache 2.0, allowing commercial use without royalties or source disclosure.

Use Cases

  1. Enterprise Knowledge Base – Crawl internal wiki, SharePoint, and file shares; expose a secure search portal with SSO.
  2. Regulatory Compliance – Index PDF and Office documents, apply OCR for scanned files, and audit search logs via the admin UI.
  3. Site Search – Embed Fess widgets into a corporate intranet or public website to replace paid search services.
  4. DevOps – Use Fess’s REST API to index logs, configuration files, and CI artifacts for quick troubleshooting.
  5. Data Lake – Ingest CSVs and relational tables, enrich with metadata, and expose a unified search layer across heterogeneous sources.

Advantages

  • Performance: Leverages OpenSearch’s distributed architecture while providing a lightweight wrapper that reduces overhead.
  • Flexibility: Full control over crawling, indexing, and security policies; no vendor lock‑in.
  • Ease of Use: GUI admin console eliminates the need for deep OpenSearch knowledge; Docker images simplify deployment.
  • Cost‑Effective: Completely free under Apache 2.0; no licensing fees for self

Open SourceReady to get started?

Join the community and start self-hosting Fess today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
APACHE-2.0
Stars
1.1k
Technical Specs
Pricing
Open Source
Database
Elasticsearch
Docker
Official
Supported OS
LinuxWindowsmacOSDocker
Author
codelibs
codelibs
Last Updated
3 hours ago