{"adoption": {"forks": 455, "observed_at": "2026-08-28T04:07:33.191972+00:00", "stars": 2981}, "canonical_url": "https://ross.abutalabs.com/products/portus", "card": {"archived": true, "artifact_type": "application", "description": "Authorization service and frontend for Docker registry (v2)", "domain": ["security", "self-hosted", "web-development"], "enriched": true, "function": ["auth", "authorization", "web-framework", "security", "search-engine", "monitoring"], "health_score": 10, "homepage": "http://port.us.org/", "language": "Ruby", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["SUSE/Portus"], "name": "SUSE/Portus", "platform": ["self-hosted", "ruby"], "pushed_at": "2023-01-19T11:16:56+00:00", "repo": "SUSE/Portus", "stars": 2981, "tags": ["docker-registry", "container-registry", "ldap", "oauth", "openid-connect", "teams", "namespaces", "on-premise", "rails", "token-authentication", "containers", "devops", "docker", "web-server", "linux"], "topics": ["docker-distribution", "docker", "security", "ruby", "containers", "rails"], "urls": [], "use_cases": ["secure a private docker registry with authentication", "manage team permissions for container images", "self-host a docker registry with a web UI", "add LDAP login to a docker registry", "audit who pushed and pulled container images", "control which users can push or pull docker images"], "what_it_is": "Portus is an open-source authorization service and web UI for the Docker Registry v2 API, providing fine-grained push/pull permissions via token-based authentication. It supports teams and namespaces, LDAP/OAuth/OpenID Connect login, auditing, search, and security scanning integration for self-hosted registries.", "when_to_avoid": ["you need a modern actively developed registry UI - consider alternatives like Harbor or Zot", "you use a registry other than Docker Distribution v2", "you need Kubernetes-native registry features"], "when_to_choose": ["you run Docker Distribution on-premise and need fine-grained access control", "you want a web interface and audit trail for your private registry", "you need LDAP, OAuth, or OpenID Connect authentication for registry users"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/portus", "repo": "SUSE/Portus", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "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:07:33.191972+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.191972+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:31:29.229853+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "275e995ef72b85f48adbf2f53410ebe8bb085779b24762c18cc4233b826e4db1", "fetched_at": "2026-08-28T04:07:33.191972+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SUSE/Portus"}, {"content_hash": "03b2a26dc9dc4985108702cb011bebdddf757ca4a6538ea7a669c3bbc8c9d0d0", "fetched_at": "2026-08-29T09:46:42.444360+00:00", "kind": "homepage", "missing": false, "url": "http://port.us.org/"}, {"content_hash": "cbf195b368334cc15e244f63425a60c7cde815590e9de46c6a6db6b3b7cab458", "fetched_at": "2026-08-29T09:46:42.447822+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/features.html"}, {"content_hash": "97826ee32666117525d60f9d32fd30e9116a3b06d13a87e10f165bcb9956ada2", "fetched_at": "2026-08-29T09:46:42.450179+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/documentation.html"}, {"content_hash": "59e66095f363563b6dc71978a6750abce0810db370e986d6c8a2af807cbbb0ad", "fetched_at": "2026-08-29T09:46:42.451951+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/FAQ.html"}, {"content_hash": "a67d81fd740438d10728bad50d7bc861ea0f801cd7a1f20aea4acf41120d4400", "fetched_at": "2026-08-29T09:46:42.453860+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/first-steps.html"}, {"content_hash": "080c3cd52592472b7f70e7e979644a2581c79777e710c2349dc0f5514bf0585f", "fetched_at": "2026-08-29T09:46:42.455648+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/Configuring-Portus.html"}, {"content_hash": "dae3bda0d50b38b406b17c4c18b3371cb23afe82ef5ea94e08793fe910f05c06", "fetched_at": "2026-08-29T09:46:42.458099+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/database.html"}, {"content_hash": "de12755d15d856db322a572caef2071b43f5a22d93d2b397a19d433020c5225d", "fetched_at": "2026-08-29T09:46:42.459994+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/How-to-setup-secure-registry.html"}, {"content_hash": "55ae7d84ff84f9ff0618e0684a827178060aed1f68acb8934a56c22d4ebcf842", "fetched_at": "2026-08-29T09:46:42.461739+00:00", "kind": "site_page", "missing": false, "url": "http://port.us.org/docs/deploy.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4160, "days_push": 1322, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}