Skip to main content

Nestr - Multi-Repo Workspace Orchestrator

License Go Version Nestr is a powerful multi-repo workspace orchestrator designed to simplify the management of complex, multi-repository projects. It provides tools for developers to initialize, sync, and run operations across multiple repositories, ensuring consistency and efficiency in development workflows.

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

# Clone the repository
git clone https://github.com/Dev4rno/nestr.git
cd nestr

# Build the backend
cd engine
go build -o nestr

# Build the frontend
cd ../frontend
npm install
npm run build

Running Nestr

# Start the backend server
cd engine
./nestr serve --port 8080

# Serve the frontend (from frontend/build directory)
# Alternatively, access the frontend via a browser at http://localhost:8080 if configured

Usage

CLI Interface

Nestr provides a comprehensive CLI for developers:
# Initialize a new project
nestr project init

# Get project information
nestr project info

# Validate project configuration
nestr project validate

# List repositories
nestr repo list

# Sync repositories
nestr repo sync

# Run operations across repositories
nestr run --operation build --services service1,service2

Graphical Interface

Access the web-based UI by navigating to http://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/cli for developer interaction.

Frontend (UI)

  • Location: /frontend
  • Purpose: Provides a user-friendly interface for managing Nestr workspaces.
  • Key Components:
    • React App: Modern UI with react-query for data fetching.
    • WebSocket: Real-time updates for operation logs and status.
    • Graph Visualization: Dependency graphs using vis-network.

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.

Development

Contributing

Contributions are welcome! Please follow standard Go and React conventions for code style.

Roadmap

See the Architecture Implementation guide for the detailed development roadmap.

License

Nestr is licensed under the MIT License.

Contact

For questions, issues, or feature requests, please open an issue on GitHub or contact the maintainers at maintainer@example.com.