xbp 0.5.4

XBP is a build pack and deployment management tool to deploy, rust, nextjs etc and manage the NGINX configs below it
Documentation

XBP: Universal Build & Deployment Toolkit

XBP helps you build, deploy, and manage Rust, Next.js, Node.js, and more—integrates tightly with Nginx and modern cloud/devops workflows. Modular, scriptable, and built with extensibility in mind.


Features

  • 🔥 Deploy and manage Rust, JS, Next.js, and custom multi-language projects
  • 🗄️ Nginx integration and config templating
  • 📦 Modular CLI with portable library core
  • 💾 Easy YAML config, SSH support, secrets management
  • 🕸️ Lightweight, minimal dependencies, cross-platform

Quickstart

# Install (Rust, Cargo required)
cargo install xbp-cli
# Or build from source
cargo build --release

# List all running network ports
xbp ports
# Filter by port number
xbp ports -p 3000
# Example: deploy a project
git clone <repo>
cd <repo>
xbp deploy

Example Output

Port: 53
UID      PID    ...   CMD
---------------------------------------------------------
systemd+ 679167  ... /usr/lib/systemd/systemd-resolved
---------------------------------------------------------

Port: 80
UID    PID   ...   CMD
---------------------------------------------------------
root   768633 ... nginx: master process ...
www-data ...  worker process ...
...
---------------------------------------------------------

Installation

  • Release binaries: See Releases
  • From source: Requires Rust 1.72+
git clone https://github.com/your-org/xbp.git
cd xbp
cargo build --release
./target/release/xbp --help

Architecture

  • /src/lib.rs: Core logic (commands, config, strategies)
  • /src/commands/: CLI subcommand implementations
  • /src/config/: YAML config and SSH management
  • /src/logging/: Tracing/log infra
  • /src/strategies/: Deploy & detection logic

Commands

  • xbp ports [-p <PORT>] — List all (or filtered) active ports
  • xbp deploy — Build & Deploy project(s)
  • xbp config — Edit/view CLI config
  • More: xbp --help

Contributing

PRs welcome! Please document new modules and keep interfaces generic & reusable. Use lucide-react for any UI icons. See /src/lib.rs for API docs. All code must be free of shadow and use only rounded-sm/md, text-primary/secondary, bg-background/foreground/hover/brand styles.


License

MIT