Skip to content

Repository files navigation

abp-msx

Lightweight TUI to run and manage ABP Framework microservice solutions from the CLI. Start containers and .NET applications, view logs, and control services from a single terminal.

Demo

Purpose

  • Lightweight — Single binary, no extra runtime; uses your existing Docker and .NET SDK.
  • ABP-native — Reads run profiles from etc/abp-studio/run-profiles/*.abprun.json (ABP Studio format).
  • CLI-first — Run from the project root (or with -d), pick a profile, then use the TUI to start/stop services and view logs.

Requirements

  • An ABP solution with ABP Studio run profiles: directory etc/abp-studio and etc/abp-studio/run-profiles/*.abprun.json.
  • Docker (for container services) and .NET SDK (for .NET applications), as defined in your profile.

Install

macOS

  1. Open the Releases page and download the binary that matches your Mac:

    • Apple Silicon (M1/M2/M3): abp-msx-darwin-arm64
    • Intel: abp-msx-darwin-amd64
  2. In Terminal, go to your download folder and make it executable:

    cd ~/Downloads
    chmod +x abp-msx-darwin-arm64   # or abp-msx-darwin-amd64
  3. Move it to a directory on your PATH and name it abp-msx:

    sudo mv abp-msx-darwin-arm64 /usr/local/bin/abp-msx
    # on most macOS setups /usr/local/bin is already on PATH
  4. Test:

    abp-msx -d /path/to/your/abp-solution

If you see permission denied, you probably skipped the chmod +x step.
If you see command not found, check that /usr/local/bin is in your PATH (echo $PATH).

Linux

  1. From Releases, download the Linux binary (abp-msx-linux-amd64 or abp-msx-linux-arm64).

  2. Go to the download folder and make it executable:

    cd ~/Downloads
    chmod +x abp-msx-linux-amd64   # or abp-msx-linux-arm64
  3. Move it to a directory on your PATH:

    sudo mv abp-msx-linux-amd64 /usr/local/bin/abp-msx
    # user-only example:
    # mkdir -p ~/.local/bin
    # mv abp-msx-linux-amd64 ~/.local/bin/abp-msx
  4. Run:

    abp-msx -d /path/to/your/abp-solution

If you installed into ~/.local/bin and the command is not found, add this to your shell config:
export PATH=\"$HOME/.local/bin:$PATH\"

Windows

  1. From Releases, download the Windows binary (e.g. abp-msx-windows-amd64.exe).

  2. Optionally rename it to abp-msx.exe.

  3. Move abp-msx.exe into a folder on your System PATH (for example C:\Tools\abp-msx\abp-msx.exe) and add that folder to PATH if needed.

  4. In PowerShell or CMD:

    abp-msx -d C:\path\to\your\abp-solution

Build from source

If you prefer to build yourself (requires Go 1.21+):

git clone https://github.com/paynion/abp-msx.git
cd abp-msx
go build -o abp-msx .
# then move abp-msx to a directory in your PATH (see above)

Cross-build for all platforms (see Makefile):

make all   # outputs to dist/

Usage

From any directory, point to your ABP solution root:

abp-msx -d /path/to/your/abp-solution

If you are already inside the ABP solution root (directory that contains etc/abp-studio), you can run:

abp-msx
  • If there is one run profile, it is used automatically.
  • If there are several, you choose one at startup, then the TUI opens.

TUI shortcuts

Key Action
↑↓ Move selection
Enter Start / stop selected service (or section)
L View logs for selected service
O Open service URL in browser
K Kill process on service port
F Open service folder in file manager
S Start all services
X Stop all services (and cancel retries)
q Quit

Logs view: G or g to resume auto-scroll, q to go back.

How it works

  1. Finds project root (current dir or -d) by looking for etc/abp-studio.
  2. Discovers run profiles in etc/abp-studio/run-profiles/*.abprun.json.
  3. Loads the chosen profile and builds the service list (containers + applications from the config).
  4. TUI shows groups (e.g. Containers, Applications, Core Services). You start/stop per service, per section, or all.
  5. Logs are read from the project’s log directory; container logs come from docker logs.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages