CLI tool to manage Fess using the admin API
Project description
FessCTL 
fessctl is a command-line interface (CLI) tool to manage Fess via its Admin API.
Fess is an open-source enterprise search server based on OpenSearch.
fessctl allows developers and operators to automate and script administrative tasks such as:
- Creating or updating crawler configurations
- Managing users and roles
- Starting or stopping scheduled jobs
- Exporting and importing settings
- Monitoring system health
(Currently under development, more features and improvements are on the way. Stay tuned for updates!)
Installation and Usage
There are four ways to use fessctl:
Method 1: Using Pre-built Docker Image
The easiest way to get started is using the pre-built Docker image:
docker run --rm \
-e FESS_ENDPOINT=https://your-fess-server \
-e FESS_ACCESS_TOKEN=your_access_token_here \
-e FESS_VERSION=15.7.0 \
ghcr.io/codelibs/fessctl:0.1.0 --help
Run actual commands:
docker run --rm \
-e FESS_ENDPOINT=https://your-fess-server \
-e FESS_ACCESS_TOKEN=your_access_token_here \
-e FESS_VERSION=15.7.0 \
ghcr.io/codelibs/fessctl:0.1.0 ping
docker run --rm \
-e FESS_ENDPOINT=https://your-fess-server \
-e FESS_ACCESS_TOKEN=your_access_token_here \
-e FESS_VERSION=15.7.0 \
ghcr.io/codelibs/fessctl:0.1.0 user list
Method 2: Building Your Own Docker Image
Clone the repository and build the Docker image locally:
git clone https://github.com/your-org/fessctl.git
cd fessctl
docker build -t fessctl:latest .
Then run with your custom image:
docker run --rm \
-e FESS_ENDPOINT=https://your-fess-server \
-e FESS_ACCESS_TOKEN=your_access_token_here \
-e FESS_VERSION=15.7.0 \
fessctl:latest --help
Method 3: Install from Source with pip
For development or when you need to modify the source code:
Requirements
- Python 3.13+
uv(recommended for environment setup)
Setup
git clone https://github.com/your-org/fessctl.git
cd fessctl
uv venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
uv pip install -e src
Usage
export FESS_ACCESS_TOKEN=your_access_token_here
export FESS_ENDPOINT=https://your-fess-server
export FESS_VERSION=15.7.0
fessctl --help
fessctl ping
fessctl user list
fessctl webconfig create --name TestConfig --url https://test.config.com/
Method 4: Install from PyPI
fessctl is published to PyPI. Install it with pip,
or use pipx / uv tool
for an isolated, globally available CLI:
pip install fessctl
# or, for an isolated install:
pipx install fessctl
# or:
uv tool install fessctl
Usage
export FESS_ACCESS_TOKEN=your_access_token_here
export FESS_ENDPOINT=https://your-fess-server
export FESS_VERSION=15.6.1
fessctl --help
fessctl ping
fessctl user list
Environment Variables
All four methods require the following environment variables:
FESS_ENDPOINT: The URL of your Fess server's API endpoint (default:http://localhost:8080)FESS_ACCESS_TOKEN: Bearer token for API authentication (required)FESS_VERSION: Target Fess version for API compatibility (default:15.7.0). Set this to match your Fess server. Fess 14.x and 15.x are supported; the value controls version-specific behavior such as HTTP methods for CRUD operations and the health-check endpoint (/api/v1/healthfor versions before 15.7,/api/v2/healthfor 15.7 and later).
License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Contributing
Pull requests are welcome! Feel free to open issues or discussions to suggest features, report bugs, or ask questions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fessctl-0.2.0.tar.gz.
File metadata
- Download URL: fessctl-0.2.0.tar.gz
- Upload date:
- Size: 34.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f8d046e8c77ca260180085dbade56e5abc23905b0f7c165f14d48160ad193c6
|
|
| MD5 |
1c3f42f9f38337f79a79b7f4d888006c
|
|
| BLAKE2b-256 |
ec69b6c9286f74ce87019513baec7ecb28088c79e128b7ad691b35777fc114c4
|
Provenance
The following attestation bundles were made for fessctl-0.2.0.tar.gz:
Publisher:
publish.yml on codelibs/fessctl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fessctl-0.2.0.tar.gz -
Subject digest:
9f8d046e8c77ca260180085dbade56e5abc23905b0f7c165f14d48160ad193c6 - Sigstore transparency entry: 1950051148
- Sigstore integration time:
-
Permalink:
codelibs/fessctl@ec97fb6ffa40b8e1b70fb7cb54ad683da5abaced -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/codelibs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ec97fb6ffa40b8e1b70fb7cb54ad683da5abaced -
Trigger Event:
push
-
Statement type:
File details
Details for the file fessctl-0.2.0-py3-none-any.whl.
File metadata
- Download URL: fessctl-0.2.0-py3-none-any.whl
- Upload date:
- Size: 58.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1406c102959e7f8a840fe1f347f2a82163f5105270f3331d06cffa0db1401e48
|
|
| MD5 |
ca766fd16893c7cd336c3003a0585410
|
|
| BLAKE2b-256 |
d5676b12a39c4be086e166a68dbfa886684055c1174bb584dc4981b997dfa649
|
Provenance
The following attestation bundles were made for fessctl-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on codelibs/fessctl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fessctl-0.2.0-py3-none-any.whl -
Subject digest:
1406c102959e7f8a840fe1f347f2a82163f5105270f3331d06cffa0db1401e48 - Sigstore transparency entry: 1950051257
- Sigstore integration time:
-
Permalink:
codelibs/fessctl@ec97fb6ffa40b8e1b70fb7cb54ad683da5abaced -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/codelibs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ec97fb6ffa40b8e1b70fb7cb54ad683da5abaced -
Trigger Event:
push
-
Statement type: