Moribito: An Interactive Terminal-Based LDAP Server Explorer Built with Go
Summary
Moribito is a powerful terminal-based LDAP server explorer developed in Go, leveraging BubbleTea for a modern TUI. It offers interactive navigation of LDAP directory trees, detailed record viewing, custom query execution, and robust connection management, making LDAP exploration efficient and user-friendly.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
Moribito, which means "forest-person" in Japanese, is a sophisticated terminal-based LDAP server explorer built with Go and the modern TUI framework, BubbleTea. Designed for system administrators and developers, Moribito provides an interactive and intuitive interface for navigating LDAP directory trees, viewing detailed records, and executing custom queries directly from your terminal. It streamlines the process of managing and exploring LDAP environments with features like efficient pagination, secure authentication, and flexible configuration.
Installation
Getting started with Moribito is straightforward, with several convenient installation methods available.
Homebrew (Recommended for macOS/Linux)
For users on macOS and Linux, Homebrew offers the simplest installation:
brew install moribito
Quick Install Scripts
Moribito also provides convenient scripts for quick installation across various platforms:
Linux/Unix:
curl -sSL https://raw.githubusercontent.com/ericschmar/moribito/main/scripts/install.sh | bash
macOS:
curl -sSL https://raw.githubusercontent.com/ericschmar/moribito/main/scripts/install-macos.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/ericschmar/moribito/main/scripts/install.ps1 | iex
For other installation options, including manual downloads from GitHub releases or building from source, please refer to the official repository.
Examples
Moribito offers flexible ways to connect and interact with your LDAP servers.
Command Line Connection
You can connect directly using command-line options:
moribito -host ldap.example.com -base-dn "dc=example,dc=com" -user "cn=admin,dc=example,dc=com"
Configuration File
For more complex setups or multiple connections, Moribito supports configuration files. You can generate a sample configuration:
moribito --create-config
A basic config.yaml might look like this:
ldap:
host: "ldap.example.com"
port: 389
base_dn: "dc=example,dc=com"
use_ssl: false
use_tls: false
bind_user: "cn=admin,dc=example,dc=com"
bind_pass: "your-password"
Interactive Querying
The Query View allows you to execute custom LDAP filters. For instance:
(objectClass=person)- Find all person objects.(cn=john*)- Find objects with a common name starting with "john".(&(objectClass=person)(mail=*@example.com))- Find people with example.com emails.
Moribito also includes a handy feature to format complex queries for better readability. Simply press Ctrl+F in the Query View.
Why Use Moribito?
Moribito stands out as an excellent choice for LDAP exploration due to several key advantages:
- Modern Terminal User Interface (TUI): Built with BubbleTea, it provides a clean, intuitive, and highly interactive experience directly in your terminal, eliminating the need for graphical tools.
- Comprehensive Features: From interactive tree navigation and detailed record viewing to powerful custom query capabilities with automatic pagination, Moribito covers all essential LDAP exploration needs.
- Performance and Reliability: Intelligent pagination efficiently handles large datasets, loading results on demand. Automatic retry functionality ensures robust connection management, gracefully handling network issues.
- Secure and Flexible: Supports SSL/TLS and various authentication methods, ensuring secure connections. Its flexible configuration via command-line flags or YAML files adapts to diverse environments.
- Cross-Platform Compatibility: Easily installable on macOS, Linux, and Windows, making it a versatile tool for any developer or administrator.