Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
Preparing Ring content
Preparing Ring content
Preparing Ring content
Status: the Ring CLI ships in the public repository at cli/. Earlier docs said it was enterprise-only, and that is no longer true. upgrade, config and test work for any clone. prod and status expect a Kubernetes cluster you reach over SSH and manifests you supply. Use the Founder / Developer tabs in the sidebar to filter this page.
The ring command is a small Node.js tool (commander, Node 18 or newer) that lives next to the app in the Layer 1 repo: ring/cli/ beside ring/web/. It handles three jobs: pulling upstream Ring updates into your clone, keeping a local deploy config, and rolling a Docker image onto Kubernetes.
| Earlier docs said | Current repo |
|---|---|
| CLI is not in the public GitHub repo | cli/ is tracked at the repo root and published |
Use npm link then ring --version | Run npm run cli:install from web/, then ring --help |
ring deploy prod | The command is ring prod. There is no deploy subcommand |
| Community uses scripts only | Community can use ring upgrade for safe upstream merges |
ring upgrade previews which Ring system files changed upstream and merges them only when you say so.
No cluster? Use install.sh and a plain Node or Docker host. The CLI is optional.
Ringdom settlers get the build and deploy pipeline run for them.
ring upgrade to see what changed upstream, reviews the diff, then applies it. Nothing is committed automatically.Status: the Ring CLI ships in the public repository at cli/. Earlier docs said it was enterprise-only, and that is no longer true. upgrade, config and test work for any clone. prod and status expect a Kubernetes cluster you reach over SSH and manifests you supply. Use the Founder / Developer tabs in the sidebar to filter this page.
The ring command is a small Node.js tool (commander, Node 18 or newer) that lives next to the app in the Layer 1 repo: ring/cli/ beside ring/web/. It handles three jobs: pulling upstream Ring updates into your clone, keeping a local deploy config, and rolling a Docker image onto Kubernetes.
| Earlier docs said | Current repo |
|---|---|
| CLI is not in the public GitHub repo | cli/ is tracked at the repo root and published |
Use npm link then ring --version | Run npm run cli:install from web/, then ring --help |
ring deploy prod | The command is ring prod. There is no deploy subcommand |
| Community uses scripts only | Community can use ring upgrade for safe upstream merges |
ring upgrade previews which Ring system files changed upstream and merges them only when you say so.
No cluster? Use install.sh and a plain Node or Docker host. The CLI is optional.
Ringdom settlers get the build and deploy pipeline run for them.
ring upgrade to see what changed upstream, reviews the diff, then applies it. Nothing is committed automatically.Status: the Ring CLI ships in the public repository at cli/. Earlier docs said it was enterprise-only, and that is no longer true. upgrade, config and test work for any clone. prod and status expect a Kubernetes cluster you reach over SSH and manifests you supply. Use the Founder / Developer tabs in the sidebar to filter this page.
The ring command is a small Node.js tool (commander, Node 18 or newer) that lives next to the app in the Layer 1 repo: ring/cli/ beside ring/web/. It handles three jobs: pulling upstream Ring updates into your clone, keeping a local deploy config, and rolling a Docker image onto Kubernetes.
| Earlier docs said | Current repo |
|---|---|
| CLI is not in the public GitHub repo | cli/ is tracked at the repo root and published |
Use npm link then ring --version | Run npm run cli:install from web/, then ring --help |
ring deploy prod | The command is ring prod. There is no deploy subcommand |
| Community uses scripts only | Community can use ring upgrade for safe upstream merges |
ring upgrade previews which Ring system files changed upstream and merges them only when you say so.
No cluster? Use install.sh and a plain Node or Docker host. The CLI is optional.
Ringdom settlers get the build and deploy pipeline run for them.
ring upgrade to see what changed upstream, reviews the diff, then applies it. Nothing is committed automatically.ring prodOut of the box, the CLI defaults point at Ringdom's own production cluster and registry. Ask your developer to set your own values with ring config before running prod or status.
ring prod |
Docker build, push, kubectl apply, set image, rollout wait |
--deploy-version, --skip-build, --skip-push, --skip-deploy, --skip-manifest-apply, --apply-k8s-secrets, --dry-run |
ring status | Pods, services and ingress over SSH, then GET {app.url}/api/health | none |
ring prod also has --forge-buildkit and --from-forge. Both drive Ringdom's private builder and are not useful outside it.
ring upgrade worksupgrade.repoUrl defaults to https://github.com/connectplatform/ring, branch main, remote name ring-upstream.upgrade.lastSyncedRef). Only files changed between base and upstream are touched..reggie-propagate-exclude.json are always skipped..ring-upgrade-history.json at the git root.ring prod needs| Input | Where it comes from |
|---|---|
| Image repository | RING_DOCKER_REGISTRY / RING_DOCKER_NAMESPACE / RING_DOCKER_IMAGE (defaults: Ringdom registry) |
| Manifests | web/k8s/deployment.yaml, else k8s/ in the org overlay (cli/paths.js resolveK8sDir). Not in the public repo |
| Cluster secrets | --apply-k8s-secrets reads RING_K8S_SECRETS_YAML or k8s/secrets.yaml |
| Build args | RING_CLI_SECRETS_PATH JSON (build_args) |
| kubectl host | k8s.controlNode, or RING_K8S_SSH_HOST for one run |
Always run ring prod --dry-run first. It prints every build, push and kubectl command without running them.
ring prodOut of the box, the CLI defaults point at Ringdom's own production cluster and registry. Ask your developer to set your own values with ring config before running prod or status.
ring prod |
Docker build, push, kubectl apply, set image, rollout wait |
--deploy-version, --skip-build, --skip-push, --skip-deploy, --skip-manifest-apply, --apply-k8s-secrets, --dry-run |
ring status | Pods, services and ingress over SSH, then GET {app.url}/api/health | none |
ring prod also has --forge-buildkit and --from-forge. Both drive Ringdom's private builder and are not useful outside it.
ring upgrade worksupgrade.repoUrl defaults to https://github.com/connectplatform/ring, branch main, remote name ring-upstream.upgrade.lastSyncedRef). Only files changed between base and upstream are touched..reggie-propagate-exclude.json are always skipped..ring-upgrade-history.json at the git root.ring prod needs| Input | Where it comes from |
|---|---|
| Image repository | RING_DOCKER_REGISTRY / RING_DOCKER_NAMESPACE / RING_DOCKER_IMAGE (defaults: Ringdom registry) |
| Manifests | web/k8s/deployment.yaml, else k8s/ in the org overlay (cli/paths.js resolveK8sDir). Not in the public repo |
| Cluster secrets | --apply-k8s-secrets reads RING_K8S_SECRETS_YAML or k8s/secrets.yaml |
| Build args | RING_CLI_SECRETS_PATH JSON (build_args) |
| kubectl host | k8s.controlNode, or RING_K8S_SSH_HOST for one run |
Always run ring prod --dry-run first. It prints every build, push and kubectl command without running them.
ring prodOut of the box, the CLI defaults point at Ringdom's own production cluster and registry. Ask your developer to set your own values with ring config before running prod or status.
ring prod |
Docker build, push, kubectl apply, set image, rollout wait |
--deploy-version, --skip-build, --skip-push, --skip-deploy, --skip-manifest-apply, --apply-k8s-secrets, --dry-run |
ring status | Pods, services and ingress over SSH, then GET {app.url}/api/health | none |
ring prod also has --forge-buildkit and --from-forge. Both drive Ringdom's private builder and are not useful outside it.
ring upgrade worksupgrade.repoUrl defaults to https://github.com/connectplatform/ring, branch main, remote name ring-upstream.upgrade.lastSyncedRef). Only files changed between base and upstream are touched..reggie-propagate-exclude.json are always skipped..ring-upgrade-history.json at the git root.ring prod needs| Input | Where it comes from |
|---|---|
| Image repository | RING_DOCKER_REGISTRY / RING_DOCKER_NAMESPACE / RING_DOCKER_IMAGE (defaults: Ringdom registry) |
| Manifests | web/k8s/deployment.yaml, else k8s/ in the org overlay (cli/paths.js resolveK8sDir). Not in the public repo |
| Cluster secrets | --apply-k8s-secrets reads RING_K8S_SECRETS_YAML or k8s/secrets.yaml |
| Build args | RING_CLI_SECRETS_PATH JSON (build_args) |
| kubectl host | k8s.controlNode, or RING_K8S_SSH_HOST for one run |
Always run ring prod --dry-run first. It prints every build, push and kubectl command without running them.