NerionX
Log inApply
← NerionX

Guide

  • Introduction
  • Getting started

API reference

  • Hub API
  • Brand Kit API

Tools

  • CLI
OpenAPIApply as a pharmacy

CLI

Create a valid business profile, request approval, and operate your self-hosted Brand Kit from the NerionX CLI.

NerionX CLI

The Brand Kit is CLI-first: a brand owner operates their approved, self-hosted Spoke + storefront with the nerionx command, talking to the shared Central Hub. New-brand registration remains Hub-owned: start, create brand --profile, and request approval --profile collect and submit the complete CLI business profile through the same Hub approval gate as web onboarding. The CLI cannot bypass validation or operator review. After approval, init and up create the Spoke database, run migrations, seed the admin, and start the Brand Kit.

Native Go CLI — public versioned distribution

The Go binary owns onboarding, profiles, Brand Kit lifecycle, identity, sync, generation, day-2 operations, fleet control, and the bounded Docker agent. Governed tags publish checksummed macOS, Linux, and Windows artifacts to install.nerionx.dev and verify a clean unauthenticated install; those releases carry Sigstore provenance, while a release published manually during a CI outage is checksummed but unsigned and is rejected by NERIONX_REQUIRE_SIGNATURE=1. Explicit legacy compatibility is limited to monorepo/platform maintenance. Fleet capacity certification remains separate acceptance work.

Workflow

  1. Run start or create brand --profile to complete a valid business profile
  2. Verify the email code and run request approval --profile; wait for operator approval
  3. Generate the first API key in the approved dashboard, sign in, then run init and up from an empty Brand Kit directory
  4. pull products --initial + generate products
  5. Review generated drafts in BrandKit, then test checkout end-to-end before launch

Commands & scripts

1 · Install & create the business profile
bash
# Public native Go CLI for macOS and Linux; installs nerionx and nerionx-agent.
curl -fsSL https://install.nerionx.dev/install.sh | bash

# Windows PowerShell: irm https://install.nerionx.dev/install.ps1 | iex

# Verify this shell is using the native binary. Its help starts with
# "NerionX CLI (Go)". If an older path appears first, remove that stale
# launcher or put the native install directory earlier in PATH, then run
# rehash (zsh) or hash -r (bash).
type -a nerionx
nerionx --version
nerionx --help

# Interactive terminals open the full-screen Bubble Tea wizard. Use arrows or
# Tab to move, Space to order common multi-select choices, A to add any other
# valid ISO code, Enter to continue, Esc to go back, and Ctrl+C to cancel.
nerionx start

# Or create a named profile directly. The CLI validates every required answer:
# contact name/email/phone, company/trading name, complete business address,
# website, one or more regions/languages/currencies, and an optional note.
nerionx create brand --profile 'CityPharmacy'
Automation-safe profile creation
bash
# One invocation, no prompts, and no invented defaults. The command fails if a
# required field is missing or invalid.
nerionx create brand --profile CityPharmacy \
  --first-name Ada --last-name Lovelace --email ada@example.com \
  --phone +41445550123 --company-name 'City Pharmacy GmbH' \
  --trading-name 'City Pharmacy' --address-line1 '1 Market Street' \
  --city Zurich --postal-code 8001 --country CH \
  --website citypharmacy.example --regions CH,DE \
  --languages de,fr --currencies CHF,EUR --non-interactive --json

# Password and email verification stay interactive by default.
nerionx request approval --profile CityPharmacy
2 · Verify the account & request approval
bash
nerionx request approval --profile 'CityPharmacy'

# The CLI asks you to accept the Terms and Privacy Policy, creates the secured
# applicant account, sends an email code, verifies it, then submits the complete
# profile. It reports success only after Hub accepts the approval request.
# Operator review usually takes a few business days.

# Automation is a resumable two-stage flow. Inject secrets from a secret
# manager; never pass passwords or email codes as command-line flags.
NERIONX_ACCOUNT_PASSWORD="$SECRET_PASSWORD"   nerionx request approval --profile CityPharmacy   --accept-terms --non-interactive --json
# Exit 3 means the email code or browser action is still required.
NERIONX_ACCOUNT_PASSWORD="$SECRET_PASSWORD" NERIONX_VERIFICATION_CODE="$SECRET_CODE"   nerionx request approval --profile CityPharmacy   --accept-terms --non-interactive --json
3 · Sign in and start the approved Brand Kit
bash
nerionx login
# Paste the Brand Hub API key from the approved brand's setup guide.
nerionx config set hubUrl https://api.nerionx.dev/api/v1
nerionx config sync-identity

# Scaffolds compose + .env (generating secrets) and pulls the kit images,
# authenticating the private image registry with the saved Brand Hub API key.
# The key is passed to Docker over stdin; there is no separate Docker login prompt.
# then creates the Spoke DB, runs migrations inside the image, and starts up.
# Works the same on a laptop and on a server. The Docker Compose CLI plugin is
# required; verify the exact shell first:
docker compose version
mkdir city-pharmacy && cd city-pharmacy
nerionx init --slug city-pharmacy

# If 8000 is already used, keep both values aligned in .env before startup:
# STOREFRONT_PORT=8101
# STOREFRONT_BASE_URL=http://localhost:8101
nerionx up

# A fresh database publishes the built-in Euro Pharmacy theme during first boot. The
# command waits for the public page, which can add about one minute, before it
# reports success. Sync the catalog, then run the full first-order gate. JSON
# reports the entire visible catalog total even though the probe fetches one row.
nerionx pull products --initial
nerionx doctor --json
# A blocked payment check is Hub-owned configuration: a super-admin selects
# this exact brand under Dashboard → Payments and enables a method marked Ready.
# The optional AI warning blocks content generation, not checkout.

nerionx status                                     # containers
nerionx logs spoke --follow                        # tail the Spoke

nerionx request ssl city-pharmacy.com
nerionx check ssl city-pharmacy.com

# Platform developers only: `nerionx brand:create` and `nerionx provision`
# create a local Spoke from a monorepo checkout.
Air-gapped / private-network install
bash
# Regulated vertical or a closed network with no reach to registry.nerionx.dev?
# Distribute the images yourself — the runtime stays containerized (no toolchain
# on the brand box). See docs/runbooks/brand-kit-airgap.md.

# On a machine that CAN pull the images — bundle them (docker save):
nerionx kit export --out ./nerionx-kit-latest

# Carry the folder in, then on the target host — load them (docker load):
nerionx kit import ./nerionx-kit-latest
nerionx init --offline --slug city-pharmacy
# Set HUB_API_KEY in .env from a secret manager before startup.
nerionx up                                     # boots from the loaded images, no registry

# Many hosts? Seed a registry you run inside your network (Zot / registry:2 / Harbor):
nerionx kit import ./nerionx-kit-latest --registry registry.internal:5000 --push
4 · Sync catalog & queue review drafts
bash
nerionx pull products --initial      # bulk download the master catalog from the Hub
nerionx sync --force-event-bus       # reconcile local mirror with Hub state
nerionx generate products            # queue product drafts for BrandKit review
nerionx generate pages               # queue governed page drafts for review
nerionx agent status                 # check AI job progress
5 · Operate the Brand Kit
bash
nerionx status                         # container status
nerionx logs spoke --follow            # follow Spoke logs
nerionx health --verbose               # Hub, Spoke, and API-key checks
nerionx db backup --file ./before-update.sql
nerionx update                         # pull and restart newer kit images
nerionx theme refresh                  # take a storefront fix the update shipped
Connect to the Hub (your Brand Kit .env)
bash
HUB_API_URL=https://api.nerionx.dev/api/v1   # the Central Hub
HUB_API_KEY=nx_live_your_brand_key           # generated from the setup guide after approval
# HUB_BRAND_ID is optional — the Hub derives the brand from the API key.

Fleet roadmap

Go client and Docker agent implemented — Hub deployment and scale certification pending. Fleet v1 commands validate and submit up to 50 active BrandKits through durable Hub runs. Docker v2 validates digest-pinned desired state and communicates with outbound-first, mTLS, bounded agents rather than unrestricted shell or Docker-socket access.

  • Exactly 2 pipelines × 50 BrandKits × 100,000 products × 10 variations equals 100,000,000 logical tasks; more than 2 pipelines means at least 150,000,000.
  • Cross-brand mutations require an allowlist-scoped NERIONX_FLEET_TOKEN; a normal brand API key never grants authority over other BrandKits.
  • The CLI submits desired work and returns a run ID; production Hub workers, quotas, backpressure, checkpoints, and retries still require deployment acceptance.
  • Passwords, verification codes, arbitrary shell execution, raw Docker-socket access, and automatic destructive volume operations remain outside unattended automation.
Fleet and Docker v2 command model
bash
# Native Go command surface. Apply requires a compatible deployed Hub fleet API.
nerionx fleet generate --file campaign.yaml --plan
NERIONX_FLEET_TOKEN="$FLEET_TOKEN" nerionx fleet generate --file campaign.yaml --apply --yes --json
NERIONX_FLEET_TOKEN="$FLEET_TOKEN" nerionx fleet status <run-id> --watch
NERIONX_FLEET_TOKEN="$FLEET_TOKEN" nerionx fleet retry <run-id> --failed-only

nerionx fleet docker plan --file desired-state.yaml
NERIONX_FLEET_TOKEN="$FLEET_TOKEN" nerionx fleet docker apply --file desired-state.yaml --confirm
NERIONX_FLEET_TOKEN="$FLEET_TOKEN" nerionx fleet docker status --all

Command reference

  • nerionx start— Go-owned: start or resume full-screen Bubble Tea onboarding from the active profile; pipes retain a safe line-oriented fallback
  • nerionx create brand --profile <name> [--non-interactive]— Go-owned: ask only for missing details or validate a complete one-liner, then privately save the profile
  • nerionx request approval --profile <name>— Go-owned: verify the applicant email and submit the complete profile for operator review
  • nerionx profile list|show|edit|use— Go-owned: list, inspect, correct unsubmitted profiles, and switch context without editing JSON
  • nerionx legacy <command> ...— Explicit platform-maintenance compatibility for monorepo provisioning and legacy migrations; never auto-selected for normal operations
  • nerionx init --slug <slug>— Scaffold an approved brand's Brand Kit — compose + .env with generated secrets, then pull images
  • nerionx up— Start the kit — infra, Spoke DB, migrations, admin seed, spoke + storefront; return only when the public page renders
  • nerionx down [--volumes]— Stop the kit; --volumes also deletes its database and uploads
  • nerionx status— Show Brand Kit container status
  • nerionx doctor [--json]— Run every first-order readiness check; report full catalog total, Hub-owned payment blockers, and optional AI generation warnings without stopping at the first failure
  • nerionx logs [service] [-f]— Tail all container logs or one service; -f follows output
  • nerionx update [--tag] [--dry-run]— Pull newer kit images and recreate Spoke + storefront
  • nerionx theme refresh [--slug]— Reinstall the storefront theme from the running image. Theme files are copied into your database on first boot and never overwritten, so your Admin edits are safe — but a storefront fix in a newer image only reaches an existing Brand Kit this way. Non-destructive: the previous theme is kept, unpublished.
  • nerionx init --offline— Air-gap: scaffold without registry login/pull — images come from `kit import`
  • nerionx kit export [--out]— Air-gap: save kit images and compose into a portable bundle
  • nerionx kit import <bundle> [--registry --push]— Air-gap: load a bundle or seed a self-hosted registry
  • nerionx login / logout— Authenticate the terminal with a brand API key
  • nerionx config get|set|sync-identity— Manage ~/.nerionx/config.json; sync brand identity from the Hub
  • nerionx select --slug|--domain— Set the active Brand Kit context
  • nerionx request dns-ready— Verify DNS resolves and record readiness on the Brand Kit
  • nerionx request ssl [domain] / check ssl <domain>— Print the SSL checklist and verify DNS for a production domain
  • nerionx pull products --initial|--recent— Download the master catalog from the Hub over HTTPS; a large initial pull can take several minutes, and --json stays silent until its one final document
  • nerionx sync --force-event-bus— Reconcile the local mirror with Hub state
  • nerionx push— Publish local prices and approved product content to the storefront feed
  • nerionx login|logout / config sync-identity / hub status— Verify and store Hub identity without exposing the API key in normal output
  • nerionx hub health— Ping the configured Hub health endpoint
  • nerionx generate products|pages— Queue review-first product or governed page drafts in BrandKit
  • nerionx agent [--llm --set-api-key --import-intent] / status— Configure review-first AI with a hidden/env key, import intent, or inspect liveness; Admin remains equivalent
  • nerionx pricing --sku | --product --set | --shipping --set | --floor | --sync-rates— Read effective prices or apply ISO-validated local rules that cannot undercut Hub floors
  • nerionx theme export|import|preview— Move/validate tokens and print preview URLs; live publication stays in BrandKit Admin
  • nerionx orders list|get— List brand orders / fetch order detail
  • nerionx inventory reserve— Verify that Hub stock can satisfy a quantity
  • nerionx webhook [--add --url --events]— List or register outbound order-event webhooks
  • nerionx health --verbose— Check Hub and, when configured, Spoke, Redis, and API-key connectivity
  • nerionx security rotate-keys— Rotate Hub ↔ Spoke secret keys
  • nerionx db migrate|backup|restore— Apply migrations, create 0600 pg_dump backups, or restore with --yes plus an automatic pre-restore backup
  • nerionx service restart— Restart the Brand Kit services
  • nerionx fleet generate|status|pause|resume|retry|cancel— Validate, submit, and control durable multi-BrandKit generation runs with idempotency and bounded shards
  • nerionx fleet docker plan|apply|status|reconcile— Validate digest-pinned desired state and communicate with registered, allowlist-only Docker agents
  • nerionx provision— Platform developers only — post-approval local monorepo deployment
  • nerionx brand:create— Platform developers only — local monorepo Spoke provisioning
  • nerionx migrate:native-catalog|migrate:native-orders— Platform maintenance: one-time native catalog/order migrations
  • nerionx hub db-backup|db-restore— Platform operators only — manage Hub database backups
  • nerionx destroy brand --force— Platform developers only — tear down a local brand database and files

NerionX

Pharmacy commerce platform — catalog, orders, and fulfillment on NerionX Hub.

Developers

  • Documentation
  • Getting started
  • Hub API
  • Brand Kit API
  • CLI reference
  • OpenAPI

Platform

  • Apply as a pharmacy
  • Log in
  • Home

Legal

  • Privacy Policy
  • Terms of Service
© 2026 NerionX · Privacy · Terms