Metadata-Version: 2.4
Name: pyplines-system-manager
Version: 2026.8.1a14
Summary: Install, upgrade, verify, and operate Pyplines installations
Author: Pyplines
License-Expression: Apache-2.0
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: argon2-cffi<26,>=25
Requires-Dist: bcrypt<6,>=4.2
Requires-Dist: docker<8,>=7.1
Requires-Dist: httpx<1,>=0.28
Requires-Dist: jsonschema<5,>=4.25
Requires-Dist: kubernetes<35,>=33
Requires-Dist: psycopg[binary]<4,>=3.2
Requires-Dist: pydantic<3,>=2.11
Requires-Dist: pyyaml<7,>=6
Requires-Dist: rich<15,>=14
Requires-Dist: textual<7,>=6
Requires-Dist: typer<1,>=0.16

# Pyplines System Manager

`pyplines-system-manager` installs, upgrades, verifies, and diagnoses a
Pyplines appliance through the Docker or SSH infrastructure driver and the
Kubernetes, PostgreSQL, and OCI APIs managed behind that boundary.

```console
pipx install pyplines-system-manager==2026.8.1a4
pyplines-system-manager
```

Running without a subcommand in an interactive terminal opens the Textual
management interface. Explicit commands support Rich terminal output and
authoritative JSON for automation. The manager is a capability-based thin
client: it resolves the selected immutable published Platform Release OCI
artifact and uses that release's inventory, Kubernetes resources, migrations,
and image digests. Local Docker and production SSH appliances consume this same
release; a source checkout and locally built platform images are not
installation inputs. The manager never shells out to `kubectl`. A newer
platform release does not require reinstalling
the manager when it uses contracts and capabilities the installed client
already supports.

For a local installation, Docker is the only host prerequisite. System Manager
creates real k3s, PostgreSQL, and OCI registry services and never requires the
operator to supply a kubeconfig or run k3d or kubectl. The local registry stores
prepared Function images only; platform workloads are pulled by immutable
digest from the published release repository.

The interactive interface is lifecycle-driven. Its home screen shows overall
health, a short readiness checklist, and one primary action derived from the
installation's current state. A new installation naturally advances through
credentials, plan review, installation, verification, and Root bootstrap.
Returning administrators are offered an upgrade, recovery, diagnosis, or the
public Pyplines application only when that action is appropriate.

Plans show the release transition, pending migrations, affected components,
and changed resources. Unchanged Kubernetes resources remain hidden until
explicitly requested. Installation and upgrade work uses a dedicated progress
screen with durable lifecycle stages and copyable activity. Detailed status,
diagnostic collection, and advanced preflight or verification controls remain
available without occupying the normal path.

Drag to select text and press `Ctrl+C` to copy it, press `c` to copy the current
screen, or use the visible copy buttons. Automation commands and their JSON
contracts remain stable.

```console
pyplines-system-manager --config pyplines-installation.yaml configure
pyplines-system-manager --config pyplines-installation.yaml doctor
pyplines-system-manager --output json --config pyplines-installation.yaml plan
pyplines-system-manager --config pyplines-installation.yaml apply --auto-approve
pyplines-system-manager --config pyplines-installation.yaml verify
pyplines-system-manager --config pyplines-installation.yaml stop
pyplines-system-manager --config pyplines-installation.yaml start
```
