npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

fabrica-cli

v0.4.5

Published

Game studio infrastructure CLI for AWS — Perforce, Unreal Horde, DDC, GameLift, cloud workstations

Readme

fabrica-cli

Game studio infrastructure as code for AWS — one binary and one YAML file to provision Perforce (or Lore), Unreal Horde, Distributed DDC, CI, GameLift deploy, and cloud workstations.

Sister tool to Ludus: Ludus builds and cooks Unreal dedicated servers; Fabrica gives them somewhere to run. Single Go binary under the hood — no Terraform, no Pulumi, no extra CLIs. AWS Cloud Control API, plan + cost estimates before you write, DynamoDB-locked state so two engineers don't clobber each other.

Install

npm install -g fabrica-cli

Upgrade:

npm install -g fabrica-cli@latest

Or run without installing:

npx fabrica-cli --help

This package is a thin launcher. On install it downloads the matching prebuilt fabrica binary from GitHub Releases and verifies its SHA-256 checksum.

Supported platforms: linux/macOS/windows on amd64; linux/macOS on arm64.

If install scripts are blocked (--ignore-scripts, pnpm, locked-down CI), fabrica still self-heals by fetching the binary on first run. Air-gapped? Set FABRICA_SKIP_AUTO_DOWNLOAD=1 and place the binary under this package's bin/ directory yourself.

"allow-scripts" warning during install

If npm's allow-scripts policy is enabled, you may see:

npm warn allow-scripts   [email protected] (postinstall: node install.js)

Harmless — install still succeeds; the binary downloads on first use if the script was blocked. To silence the warning:

npm config set allow-scripts=fabrica-cli --location=user

Alternative install

go install github.com/jpvelasco/fabrica@latest

Quickstart

# Install
npm install -g fabrica-cli

# Config (copy example from the repo, or create fabrica.yaml)
# Set aws.region at minimum

fabrica setup --dry-run    # plan + cost for S3 state bucket + DynamoDB lock table
fabrica setup              # create state backend (once per account)
fabrica doctor             # credentials, region, bucket, lock table
fabrica status             # aggregate health (empty modules is fine)

Recommended first path: foundation → DDC → Horde → deploy (plus VCS when you need a depot). Every create/setup command is idempotent, shows a plan + cost estimate, and prompts before writing AWS (--yes skips; --dry-run previews).

# Source of truth (pick one or both)
fabrica perforce create && fabrica perforce status
# or: fabrica lore create && fabrica lore status -w
#   (private subnet? verify via SSM — status -w probes the private IP: docs/ssm-private.md)

# Keep cooks fast
fabrica ddc setup && fabrica ddc status --probe
# Low-latency regions (optional; copy the home AMI first)
fabrica ddc region add eu-west-1 --yes

# Build farm + CI over Horde
fabrica horde create && fabrica horde status
fabrica ci setup
fabrica ci trigger path/to/BuildGraph.xml --wait

# GameLift blue/green (set deploy.buildBucket in fabrica.yaml first)
fabrica deploy setup
fabrica deploy promote v1.0.0
fabrica deploy status

What you get

| Module | Commands | Purpose | |--------|----------|---------| | Foundation | setup, doctor, status, config show | State backend + health | | perforce | create, status, destroy, backup, restore | Helix Core on EC2 + EBS checkpoints | | lore | create, status, destroy | Epic loreserver (parallel to Perforce) | | horde | create, status, submit, destroy, ami build | Unreal Horde coordinator + BuildGraph jobs | | ddc | setup, status, destroy, region add | Unreal Cloud DDC (Jupiter), home + edge regions | | workstation | create, list, stop, start, terminate | NICE DCV cloud workstations | | ci | setup, trigger, status, logs, destroy | CodeBuild orchestration over Horde | | deploy | setup, promote, rollback, status, destroy | GameLift blue/green (alias flip) | | cost | report, forecast, alerts | Offline cost visibility + local budgets | | Teardown | destroy --all | Ordered full-stack teardown |

Why Fabrica

Game studios aren't web apps. You need version control for terabyte asset histories, a build farm for distributed cooks, a DDC that keeps iteration fast, and a reliable way to stand all of it up without stitching Terraform modules, bash scripts, and console clicks.

Fabrica owns the full lifecycle — provision, status, tear down — with typed-phrase confirmations, recoverable partial state, and cost estimates before every write.

Pair with Ludus

| Tool | Role | |------|------| | ludus-cli | Build, cook, package, push UE5 dedicated servers | | fabrica-cli | Provision studio infra those builds run on |

Typical loop: Fabrica stands up Horde / DDC / GameLift wiring; Ludus produces the server package; Fabrica deploy promote flips the fleet.

Requirements

  • Node.js 18+ (for this npm launcher only)
  • AWS credentials that can create EC2, security groups, S3, DynamoDB, and call sts:GetCallerIdentity
  • Region set in fabrica.yaml (aws.region)
  • Pre-baked AMIs for Horde, DDC, and workstations (Fabrica configures and starts services via cloud-init — it does not bake the AMIs). See the repo docs: horde-ami, ddc-ami

Config

Copy fabrica.example.yaml to fabrica.yaml and set at least:

aws:
  region: us-east-1

State lives in S3 (fabrica-state-<account-id>) + DynamoDB lock table, with a local cache under .fabrica/. Module credentials (where applicable) are written to .fabrica/*-credentials.yaml with mode 0600 as the operator source of truth. The workstation DCV session password must reach its instance for chpasswd, so it briefly appears in EC2 UserData and is scrubbed from the instance (local copy truncated, IMDS user-data cleared) immediately after boot; see docs/workstation-ami.md.

Links