Nestr - Multi-Repo Workspace Orchestrator
Overview
Nestr aims to solve the challenges of working with multiple repositories by providing a unified interface to manage dependencies, configurations, and operations. Whether you’re working on microservices, monorepos, or interdependent projects, Nestr streamlines the process with both CLI and graphical interfaces.Key Features
- Multi-Repo Management: Initialize, sync, and manage multiple repositories from a single interface.
- Dependency Graph Visualization: Understand and navigate complex service dependencies.
- Operation Execution: Run commands and workflows across selected services or repositories.
- Scalable Backend: RESTful API with rate limiting, caching, and metrics for performance.
- Database Integration: Persistent storage for workspace and operation logs using SQLite.
- Cross-Platform: Works on macOS, Linux, and Windows environments.
Project Structure
Nestr is organized into several subsystems and repositories at the project root:- /engine: The core backend engine written in Go, providing the REST API, database integration, and orchestration logic.
- /frontend: A modern React-based UI for visual interaction with Nestr’s features, including real-time updates via WebSocket.
- /sweep: A utility for scanning and aggregating directory structures across languages (Python, Go, Rust, Bash, Node.js), with comprehensive test suites.
- /docs: Documentation for deployment, load balancing, and implementation details.
Installation
Prerequisites
- Go: Version 1.24 or higher for building the backend.
- Node.js: Version 18 or higher for the frontend.
- Git: For repository management.
Building from Source
Running Nestr
Usage
CLI Interface
Nestr provides a comprehensive CLI for developers:Graphical Interface
Access the web-based UI by navigating tohttp://localhost:8080 after starting the server. The UI provides visual tools for managing workspaces, viewing dependency graphs, and executing operations.
Subsystems
Engine (Backend)
- Location:
/engine - Purpose: Core orchestration logic, REST API, database, and caching.
- Key Components:
- REST Server: Handles API requests with rate limiting and metrics.
- Database: SQLite for persistent storage with optimized indexes.
- Caching: Redis integration for performance.
- CLI: Built with
urfave/clifor developer interaction.
Frontend (UI)
- Location:
/frontend - Purpose: Provides a user-friendly interface for managing Nestr workspaces.
- Key Components:
- React App: Modern UI with
react-queryfor data fetching. - WebSocket: Real-time updates for operation logs and status.
- Graph Visualization: Dependency graphs using
vis-network.
- React App: Modern UI with
Sweep (Utility)
- Location:
/sweep - Purpose: Cross-language utility for directory scanning and aggregation.
- Key Components:
- Implementations: Available in Python, Go, Rust, Bash, and Node.js.
- Test Suite: Comprehensive unit and CLI tests for validation.
- Fixtures: Test cases for various directory structures.