{"adoption": {"forks": 93, "observed_at": "2026-08-28T04:09:01.538868+00:00", "stars": 4861}, "canonical_url": "https://ross.abutalabs.com/products/unregistry", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Push docker images directly to remote servers without an external registry", "domain": ["self-hosted", "developer-tools"], "enriched": true, "function": ["container-runtime", "deployment", "developer-tools", "cli"], "health_score": 94, "homepage": "https://uncloud.run", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["psviderski/unregistry"], "name": "psviderski/unregistry", "platform": ["cli", "go"], "pushed_at": "2026-07-14T02:56:03+00:00", "repo": "psviderski/unregistry", "stars": 4861, "tags": ["docker", "container-images", "ssh", "oci-registry", "containerd", "image-transfer", "docker-plugin", "containers", "devops", "linux", "macos"], "topics": ["containerd", "docker", "golang", "kubernetes", "oci", "registry"], "urls": [], "use_cases": ["push a docker image to a remote server without a registry", "deploy locally built images to production over ssh", "transfer only missing image layers to a server", "avoid paying for private docker registry storage", "replace docker save/load with faster image transfer", "self-host container images without exposing ports"], "what_it_is": "Unregistry is a lightweight container image registry that stores and serves images directly from a Docker daemon's storage. Its `docker pussh` CLI plugin pushes Docker images straight to remote servers over SSH, transferring only missing layers without needing an external registry.", "when_to_avoid": ["you need a persistent, shared registry for CI/CD pipelines or teams pulling images", "you target Kubernetes clusters rather than plain Docker hosts", "you need image vulnerability scanning, retention policies, or registry access controls"], "when_to_choose": ["you need to move images between Docker hosts without setting up or paying for a registry", "you want fast transfers that skip layers already on the remote server", "you deploy to a few servers over SSH and want a simple rsync-like workflow", "you use Uncloud or a similar multi-host Docker setup"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/unregistry", "repo": "psviderski/unregistry", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:01.538868+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:18:22.056304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e075fe6c56347e04a0ed2eb2ca53dff71073760ce727bae555a151a4cb544242", "fetched_at": "2026-08-28T04:09:01.538868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/psviderski/unregistry"}, {"content_hash": "160c6e919b80d64e7a2282f796983d883d6446bcb916d481c4384c44671ce9ae", "fetched_at": "2026-08-29T09:00:57.775397+00:00", "kind": "homepage", "missing": false, "url": "https://uncloud.run"}, {"content_hash": "7a7e4cbfc4096788cacdffbe4e1fa3fcd45c81dce5d2c6578cc076bcb8aa95da", "fetched_at": "2026-08-29T09:00:57.778577+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs"}, {"content_hash": "ea48e5a370d8b333b982c0ded6adb6f4e2252f802e9c954045bd146ec4e81614", "fetched_at": "2026-08-29T09:00:57.781081+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/docs/getting-started/deploy-demo-app"}, {"content_hash": "ba42cde92c0ac463aa1113fbb1f969fdb10f9fff0d445990adf499ee27c338c1", "fetched_at": "2026-08-29T09:00:57.783465+00:00", "kind": "site_page", "missing": false, "url": "https://uncloud.run/hub"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "longevity": 32, "rhythm": 88}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 457, "days_push": 50, "days_rel": 82, "gap_med": 17, "n_releases_24m": 12}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}