Skip to main content

CLI tool to manage Fess using the admin API

Project description

FessCTL License

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/health for versions before 15.7, /api/v2/health for 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fessctl-0.2.0.tar.gz (34.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fessctl-0.2.0-py3-none-any.whl (58.5 kB view details)

Uploaded Python 3

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

Hashes for fessctl-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9f8d046e8c77ca260180085dbade56e5abc23905b0f7c165f14d48160ad193c6
MD5 1c3f42f9f38337f79a79b7f4d888006c
BLAKE2b-256 ec69b6c9286f74ce87019513baec7ecb28088c79e128b7ad691b35777fc114c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for fessctl-0.2.0.tar.gz:

Publisher: publish.yml on codelibs/fessctl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for fessctl-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1406c102959e7f8a840fe1f347f2a82163f5105270f3331d06cffa0db1401e48
MD5 ca766fd16893c7cd336c3003a0585410
BLAKE2b-256 d5676b12a39c4be086e166a68dbfa886684055c1174bb584dc4981b997dfa649

See more details on using hashes here.

Provenance

The following attestation bundles were made for fessctl-0.2.0-py3-none-any.whl:

Publisher: publish.yml on codelibs/fessctl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page