Repository navigation
feat(registry/phorcys/modules/xpra): add module for single-app web desktops - #1224
Draft
phorcys420 wants to merge 1 commit into
Draft
phorcys420 wants to merge 1 commit into
phorcys420 wants to merge 1 commit into
Conversation
…sktops Run any X11 app as a full-size Coder app with xpra desktop and openbox. The X display follows the browser size.
Contributor
Module Scorecard Check
|
| Presentation & Onboarding | Credential Hygiene | Restricted-Environment Readiness | Engineering Quality | Overall |
|---|---|---|---|---|
| 12 / 17 | 20 / 20 | 11 / 20 | 10 / 10 | 79 / 100 |
Drilldown
Track: Utility (generic X11 app launcher — not an AI agent or a dedicated IDE module)
Presentation & Onboarding — 12 / 17
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Configuration-mode examples | 12 | 12 | README shows multiple major modes with sensible defaults: single app, multiple instances (unique slug/port), env/xpra tuning (env, extra_args), and bring-your-own-binary mode (install_xpra=false, install_openbox=false). |
| Visual preview | 5 | 0 | No image, GIF, or video of the rendered app in the README. |
Credential Hygiene — 20 / 20
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Secrets marked sensitive | 16 | 16 | Module has no secret/credential inputs by construction; no inline keys or placeholder secrets appear anywhere in the README examples. |
| Non-hardcoded auth path | 4 | 4 | README explicitly states "xpra listens on 127.0.0.1 only. The Coder app proxy does the authentication," documenting a non-hardcoded auth path via Coder's built-in proxy. |
Restricted-Environment Readiness — 11 / 20
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Mirrorable artifact source | 5 | 0 | install.sh.tftpl hardcodes https://raw.githubusercontent.com/Xpra-org/xpra/.../xpra.sources and https://xpra.org/xpra.asc. No module variable overrides these download URLs. |
| Bring-your-own binary | 10 | 10 | install_xpra and install_openbox variables fully disable install when binaries are baked into the image, documented in the "Preinstalled xpra and openbox" README section. |
| Egress transparency | 3 | 0 | No dedicated network/offline/air-gapped section enumerating endpoints (xpra.org, raw.githubusercontent.com) contacted during install; only scattered install-script code, not a documented section. |
| Runs without sudo | 2 | 1 | install.sh.tftpl requires passwordless sudo for apt-get package install (core install path) and exits with an error if absent, but documents a working no-sudo fallback (install_xpra=false/install_openbox=false with preinstalled packages). start.sh.tftpl never uses sudo. Matches "sudo for optional/core install with documented fallback" → half credit. |
Engineering Quality — 10 / 10
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Input quality | 6 | 6 | All variables have clear descriptions and sensible defaults; validations present for command, slug, port, open_in, share, and env key format. |
| Test coverage | 4 | 4 | main.tftest.hcl covers business logic (URL generation, validation failures, script content assertions) and main.test.ts covers end-to-end behavior (terraform apply, coder_app resource shape, decoded script contents). |
Overall — 79 / 100
Raw 53 / 67 → round(53 / 67 × 100) = 79
Tip
You can run this locally by telling your agent: "review this module against .github/scorecard/SCORECARD.md".
Scored against SCORECARD.md with solstice-1. Language-model scores are advisory.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a
phorcysnamespace with anxpramodule that turns any X11 desktop app into a Coder app. Each instance runs its ownxpra desktopsession with openbox, which maximizes the app without decorations.--resize-display=yesmakes the X display follow the browser size, so the app always fills the slim window or tab, similar to RemoteApp.Notes:
$HOME/.coder-modules/phorcys/xpra-<slug>as its module directory. coder-utils derives its sync names from the last two path segments, so a shared directory would collide when the module is used more than once.install_xpra/install_openboxturn this off for preinstalled images.Type of Change
Module Information
Path:
registry/phorcys/modules/xpraNew version:
v1.0.0Breaking change: [ ] Yes [x] No
Testing & Validation
bun test)bun fmt)Ran the rendered install and start scripts in
ubuntu:24.04with a GTK app (gtk3-demo), a Qt app (featherpad) and a Java Swing app. Then resized a headless Chromium from 1280x800 to 900x600: in each case the app window followed the browser size.Related Issues
None
Agent-assisted with Xum using Claude.