Docs site, CLI improvements - #46
Merged
Merged
Conversation
Marketing landing page at / and Starlight docs under /docs, published at dvm.eshlox.net. Migrates the docs/ and examples/ markdown into the site as the single source of truth and trims the README to point there. - Astro 6 + Starlight 0.39, built with pnpm - Custom dark/light landing page with a terminal demo - Supply-chain hardening per eshlox.net/npm-supply-chain-security (minimumReleaseAge, strictDepBuilds, exact pins, frozen-lockfile CI) - Cloudflare Pages build settings and a site build workflow
The first sync stopped at Lima's proceed/edit/exit prompt. Pass --yes to limactl start so it proceeds with the generated configuration.
Capture the full output of Lima and setup scripts to per-VM logs under
${XDG_STATE_HOME:-~/.local/state}/dvm/<vm>/ (lima.log, setup.log) and show a
one-line spinner per step that resolves to a green check or, on failure, a red
cross with the VM name, exit code, log path, and the log's last lines.
- Run limactl at --log-level warn; DVM_VERBOSE=1 streams everything live
- Color and spinner disabled when stderr is not a TTY or NO_COLOR is set
- DVM_STATE_DIR overrides the log location
- Smoke test stub skips the global --log-level flag; tests pin DVM_STATE_DIR
- Light-mode accent failed AA as text; split into a brand fill color and a text-grade accent (emerald-700, 5.48:1 on white) for the eyebrow, install prompt, card icons, docs links, and a theme-aware hero gradient - Add visible :focus-visible outlines for keyboard navigation - Honor prefers-reduced-motion (disable cursor blink and hover transforms)
A lighthearted testimonials block that is honest about being made up, with a link inviting the first real feedback via GitHub Discussions.
Move the fake testimonials to an array in the page frontmatter and render them in a loop, and grow the set to 40 nerdy/punchy quotes (several at the expense of developers who treat security as optional).
Add a maintainer credit linking to eshlox.net in the landing-page footer and, via a Starlight Footer override, on every docs page.
Show them as icon buttons in the docs header (Starlight social) and as links in the landing-page footer. Mastodon link carries rel=me for profile verification.
Drop the full legal name from the site footers and LICENSE in favor of the eshlox handle.
- binaries example: add a 'From an upstream RPM' section (sops pattern) and add --retry/--connect-timeout flags so downloads survive a flaky network - troubleshooting: note the harmless systemd-binfmt failure on aarch64 Lima images and how to mask it
The pnpm/action-setup@v4 action is blocked by the repo's policy that only allows actions owned by eshlox or created by GitHub. Corepack ships with Node and reads the pinned pnpm version from package.json, so no external action is needed.
- check: drop the shellcheck apt install (preinstalled on ubuntu-24.04) - check: skip the shell check on docs-only PRs via a git-diff gate; the job still runs and succeeds so the required status check is satisfied - site: pin actions/checkout and actions/setup-node to commit SHAs (Dependabot tracks the github-actions ecosystem and will bump them)
- cp: a VM destination that names an existing directory (or a bare vm:) now copies the file into it under its own name, instead of failing when cat targets a directory path without a trailing slash. - logs: create the per-VM state dir 700 and step logs 600 via umask, since setup-script output captured there may include secrets. - progress: gate the spinner on the same condition as color, so NO_COLOR/TERM=dumb fall back to plain per-step lines as documented. - tests: cover bare vm: cp resolution and owner-only log permissions. - docs: describe cp directory-target semantics.
Wire the DVM.zip hand-off into the site and keep the full source set under brand/. - Replace favicon.svg with the new mark; add .ico, PNG fallbacks (16/32/48/64/192/512), apple-touch-icon, and a web manifest - Add the 1200x630 OG image with og:image / twitter:image tags on both the landing page and the Starlight docs - Use the transparent-background mark with per-scheme light/dark variants for the docs header - theme-color metas per color scheme - brand/ holds the full deliverable (lockups, og-image.html source); ignore the raw DVM.zip
new: print a single tilde-collapsed line with brace shorthand
(wrote ~/.config/dvm/vms/<vm>/{config.sh,setup.sh}) to match the docs.
stop: run limactl behind the spinner/step UI so it shows a clean
progress indicator and '<vm> stopped' instead of raw Lima INFO/ERRO
output; full output still captured to the per-VM lima log.
Per-VM config.sh now ships resource settings commented out, so VMs inherit defaults then global config instead of each pinning its own copy. dvm new scaffolds ~/.config/dvm/config.sh on first run. The global setup script is now convention-based at ~/.config/dvm/setup.sh, replacing DVM_GLOBAL_SETUP. Default memory lowered to 2 GiB (defaults now 2 CPU / 2 GiB / 30 GiB).
dvm rm now wraps the Lima stop+delete in a run_step with a spinner and a "✓ <vm> removed" line, matching sync and stop, and prints config paths $HOME-shortened to ~ like new. Adds a shared disp_path helper and reuses it in new.
Default DVM_CPUS to host cores minus a small reserve (1 core up to 4 cores, 2 beyond, floored at 2) instead of a fixed 2. vCPUs are a time-shared ceiling, not pinned, so a busy VM can burst to most of the host while idle VMs cost nothing; the reserve keeps the host and dvm/limactl responsive under load. Document the CPU-vs-memory distinction and that existing VMs keep their created-with value.
Mirror the short CPU-vs-memory note into the README quickstart and add a CPUs section to the Lima reference, both noting vCPUs are a time-shared ceiling (safe to oversubscribe) while memory is reserved.
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.
No description provided.