Fess KOPF is a simple web administration tool for OpenSearch, integrated with Fess. Built with JavaScript + AngularJS + jQuery + Bootstrap.
This project is a fork of elasticsearch-kopf, customized specifically for Fess and adapted to work exclusively with OpenSearch 2.x and 3.x.
| OpenSearch | Fess | Status |
|---|---|---|
| 2.x | 15.x | Supported |
| 3.x | 15.x | Supported |
Note: This tool supports OpenSearch only and does not support Elasticsearch.
- Cluster Overview: Real-time monitoring of cluster state, nodes, and indices
- Index Management: Create, delete, open, close indices and modify settings
- Alias Management: Create and manage index aliases
- Snapshots: Create, restore, and manage snapshots
- Index Templates: Create and edit index templates
- Analyzer Testing: Test and validate text analysis
- REST Client: Direct access to OpenSearch API
- CAT API: Browser-based interface for CAT API
- Hot Threads Analysis: Node thread analysis
The following features have been removed as they are not supported in OpenSearch 2.x/3.x:
- Percolator queries (deprecated in Elasticsearch 5.x)
- Index warmers (deprecated in Elasticsearch 5.x)
- Benchmark API (removed in Elasticsearch 5.x)
# Clone the repository
git clone https://github.com/codelibs/fess-kopf.git
cd fess-kopf
# Install dependencies
npm install
# Build
npm run buildnpm install
grunt serverOpen your browser and navigate to http://localhost:9000/_site.
Fess KOPF is designed to be integrated directly into Fess. The built files in the _site/ directory are served through Fess's web interface.
Access the KOPF interface through your Fess instance at:
http://your-fess-instance/_plugin/kopf/
Configure Fess KOPF using the kopf_external_settings.json file:
{
"opensearch_root_path": "",
"with_credentials": false,
"theme": "fess",
"refresh_rate": 5000
}- opensearch_root_path: OpenSearch root path (default: "")
- with_credentials: Include credentials in cross-origin requests (default: false)
- theme: UI theme (
fess,light,dark) - refresh_rate: Cluster information refresh interval in milliseconds
fess(default) - Fess-themed interfacelight- Light themedark- Dark theme
# Production build
npm run build
# Development server with hot reload
grunt server# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Run linter
npm run lintfess-kopf/
├── src/
│ ├── kopf/
│ │ ├── opensearch/ # OpenSearch-related models
│ │ ├── controllers/ # AngularJS controllers
│ │ ├── services/ # AngularJS services
│ │ ├── models/ # Data models
│ │ ├── filters/ # AngularJS filters
│ │ ├── directives/ # AngularJS directives
│ │ └── css/ # Stylesheets
│ └── lib/ # Third-party libraries
├── _site/ # Build output
├── tests/ # Test files
└── Gruntfile.js # Build configuration
- Access KOPF through Fess
- Automatically connects to OpenSearch cluster
- Cluster state is displayed on the dashboard
- Click on the "cluster" tab to view cluster overview
- Click on an index to view details
- Select an operation from the right-click menu:
- Open/Close
- Delete
- Refresh
- Optimize (Force Merge)
- Clear Cache
- Select "more" → "create index"
- Enter index name
- Set number of shards and replicas
- Optionally add mappings and settings
- Click "Create"
- Select "more" → "snapshot"
- Create a repository (first time only)
- Click "Create Snapshot"
- Select snapshot name and target indices
- Click "Create"
- Select the "rest" tab
- Choose HTTP method (GET, POST, PUT, DELETE)
- Enter API path (e.g.,
_search,_cat/indices) - Enter request body (optional)
- Click "Send Request"
If you cannot connect to OpenSearch:
- Verify OpenSearch is running
- Check network settings
- Verify CORS settings (in OpenSearch's
opensearch.yml):http.cors.enabled: true http.cors.allow-origin: "*"
If cluster information loads slowly:
- Increase refresh rate (adjust
refresh_ratein settings) - For large clusters, check browser memory
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
MIT License - see the LICENSE file for details.
- Original elasticsearch-kopf by Leonardo Menezes
- OpenSearch adaptation and Fess integration by CodeLibs Project
- Fess - Enterprise Search Server
- OpenSearch - Open Source Search Engine
- CodeLibs - Fess Development Project