{"adoption": {"forks": 418, "observed_at": "2026-08-28T04:09:41.578367+00:00", "stars": 6303}, "canonical_url": "https://ross.abutalabs.com/products/x11docker", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Run GUI applications and desktops in docker and podman containers. Focus on security.", "domain": ["developer-tools", "security", "desktop-applications", "self-hosted"], "enriched": true, "function": ["gui", "security", "container-runtime", "developer-tools", "self-hosted"], "health_score": 92, "homepage": null, "language": "Shell", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["mviereck/x11docker"], "name": "mviereck/x11docker", "platform": ["cli", "windows"], "pushed_at": "2026-07-05T16:46:19+00:00", "repo": "mviereck/x11docker", "stars": 6303, "tags": ["docker", "podman", "x11", "wayland", "gui-applications", "sandboxing", "gpu-acceleration", "pulseaudio", "vnc", "xpra", "containers", "linux"], "topics": ["docker", "gui", "xorg", "gpu", "x11", "pulseaudio", "wayland", "desktop", "x", "sound", "ssh", "vnc", "html5", "webcam", "printer", "sandbox", "xpra", "containers", "podman", "nerdctl"], "urls": [], "use_cases": ["run GUI applications in docker containers", "run a linux desktop environment in a container", "sandbox untrusted graphical apps securely", "run GUI apps with GPU hardware acceleration in containers", "run containerized apps with sound and webcam support", "avoid X11 socket security leaks when running containerized GUIs", "run GUI docker containers on Windows with WSL"], "what_it_is": "x11docker is a shell-based CLI tool that runs graphical applications and entire desktop environments inside Docker, podman, or nerdctl containers. It focuses on avoiding X11 security leaks and enhancing container isolation while supporting GPU acceleration, sound, webcam, and clipboard sharing.", "when_to_avoid": ["you only need headless containers with no GUI", "you need a general container orchestration or deployment tool", "you run only macOS or native Windows GUI apps without Linux containers", "you want a graphical point-and-click manager rather than a CLI"], "when_to_choose": ["you need to run graphical Linux apps in containers with strong isolation", "you want GPU, audio, webcam, or printer passthrough for containerized GUI apps", "you want to run full desktop environments from container images", "you need seamless or VNC/HTML5 display options for containerized apps"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/x11docker", "repo": "mviereck/x11docker", "role": "main", "score": 84}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "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:41.578367+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.578367+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:46:15.095498+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "980cf74566b5bd1b65c570b7cded3442bba8beb66b9df1e5aff02365c80eed56", "fetched_at": "2026-08-28T04:09:41.578367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mviereck/x11docker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 66}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3996, "days_push": 59, "days_rel": 228, "gap_med": 29.5, "n_releases_24m": 3}, "score": 84, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}