Skip to content

Manage Projects

A Project lives inside one Domain and owns a mesh-IP sub-range carved from the Domain's mesh CIDR. plexctl project wraps the /v1/projects CRUD surface.

Prerequisites

Steps

Create a Project

shell
plexctl project create \
  --domain <domain-uuid> \
  --slug billing \
  --display-name "Billing" \
  --sub-range-cidr 10.64.16.0/20

--domain, --slug, and --display-name are required. --sub-range-cidr is optional and must fall inside the Domain's mesh CIDR. The slug is immutable after creation.

List and inspect

shell
plexctl project list --domain <domain-uuid> --all
plexctl project get <project-uuid>      # UUID only, no slug fallback

Update mutable fields

shell
plexctl project update <project-uuid> --display-name "Billing & Invoicing"
plexctl project update <project-uuid> --release-sub-range

--sub-range-cidr and --release-sub-range are mutually exclusive.

Delete an empty Project

shell
plexctl project delete <project-uuid> --yes

Verification

shell
plexctl project get <project-uuid> --output json | jq '{slug, sub_range}'

See also