{"adoption": {"forks": 135, "observed_at": "2026-08-28T04:03:42.297744+00:00", "stars": 1130}, "canonical_url": "https://ross.abutalabs.com/products/containerpilot", "card": {"archived": false, "artifact_type": "service", "description": "A service for autodiscovery and configuration of applications running in containers", "domain": ["microservices", "self-hosted"], "enriched": true, "function": ["service-discovery", "configuration-management", "scheduling", "monitoring"], "health_score": 20, "homepage": null, "language": "Go", "license": "MPL-2.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["TritonDataCenter/containerpilot"], "name": "TritonDataCenter/containerpilot", "platform": ["go"], "pushed_at": "2023-09-20T05:26:21+00:00", "repo": "TritonDataCenter/containerpilot", "stars": 1130, "tags": ["init-system", "consul", "process-supervisor", "health-checks", "container-lifecycle", "containers", "devops", "linux", "docker"], "topics": ["containerpilot", "consul", "orchestration", "containers", "docker", "joyent", "service-discovery", "triton"], "urls": [], "use_cases": ["register containerized apps with a service catalog like Consul", "discover dependent services dynamically at runtime", "supervise processes and reap zombies inside a container", "run health checks and reconfigure apps when dependencies change", "run lifecycle hooks on container start and shutdown", "wire up multi-container apps like WordPress with MySQL and Memcached"], "what_it_is": "ContainerPilot is an init system and process supervisor designed to run inside containers. It automates service registration and discovery via Consul, runs health checks, reconfigures applications at runtime, and manages container lifecycle events.", "when_to_avoid": ["you use Kubernetes or another orchestrator that already handles discovery and lifecycle", "you're starting a new project on modern tooling, as the project is in maintenance mode", "you need service discovery without Consul"], "when_to_choose": ["you run legacy apps in containers that can't natively talk to Consul or Etcd", "you need an init system with built-in service discovery and health checks in each container", "you want runtime reconfiguration of apps like Nginx upstreams as services scale"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/containerpilot", "repo": "TritonDataCenter/containerpilot", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "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:03:42.297744+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.297744+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:38:05.851793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24667660ad0cfd074c45c20953f900c4fa2f8a41776c4ee1e85d4b6182fa335", "fetched_at": "2026-08-28T04:03:42.297744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TritonDataCenter/containerpilot"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 3968, "days_push": 1078, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}