Add OpenVSCode IDE support and CLI documentation#28
Open
Conversation
Documents 113 commits of new features and changes: - docs/setup.md: add profile properties (IDEs, gitURLs, options, readonly bind mounts, wildcard networks/runtimes), user gh_token field, IDEs resource type - docs/usage.md: add OpenVSCode IDE, IDE selection/switching, profile options at launch, Dockside CLI section - docs/README.md: add OpenVSCode and gh CLI to features, CLI section, update copyright year to 2024 - docs/roadmap.md: remove items now implemented (multi-IDE, OpenVSCode, branch/PR options, gh-based SSH key management) - docs/developing/building-image.md: update Theia version example to 1.66.1 - docs/developing/updating-theia.md: update version refs and folder structure for ide/theia/latest convention; note system binaries path - docs/developing/developing.md: rename IDE section, add OpenVSCode, add automated test suite (test.sh), update home path to /home/dockside/dockside https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS
- docs/README.md: add autodetection advanced feature bullet; de-Theia-ify Extensions section ssh-agent link; update copyright to 2026 - docs/setup.md: add autodetection paragraph (networks/runtimes/IDEs), network name format note, gitURL .git suffix note; add io.containerd.runc.v2 to runtimes example - docs/usage.md: add note about bundled gh CLI and gh_token in IDE section - docs/securing.md: add tip about networks ["*"] wildcard autodetection - docs/extensions/ssh.md: replace all "Theia IDE" references with "IDE" - docs/extensions/runtimes/sysbox.md: add ["*"] autodetection note to sysbox-runc runtimes step https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS
…EADME - Opening paragraph: add codex's "It packages multiple browser IDE options, such as OpenVSCode Server and Theia, alongside secure SSH access for terminal workflows or connecting local VS Code via Remote SSH." - IDE bullet: adopt codex's "Powerful IDE bundle including OpenVSCode Server and Theia, plus first-class SSH and VS Code-over-SSH access." (richer than the bare "choose between" phrasing) - Workflow sentence: restore codex's "Dockside supports working directly in browser IDEs, connecting local VS Code via SSH, or using plain SSH terminals, so teams can adopt the workflow that best fits each task." - Extensions local ssh-agent link: adopt codex's plural "across Dockside IDEs...their UIs or terminals" (better for multi-IDE context) - Upgrading line: use codex's "Dockside IDE bundle" (was incorrectly left as "Dockside Theia IDE") https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS
…oarding - Promote local launch to a prominent 'Quick Start — Launch locally' subsection with framing copy for solo devs and multi-project teams - Add 'Launch on a public domain with auto-generated SSL' as the primary shared/team launch path (was buried as option 4) - Drop 'in production' framing throughout; local launch is a first-class usage model, not just a trial option - Move self-signed and self-supplied SSL instructions into a new 'Advanced Launch Options' subsection - Mark Google Cloud Deployment Manager as deprecated and move to Advanced Launch Options - Add Terraform placeholder in Advanced Launch Options https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS
- Rewrite Introduction to lead with devcontainer-per-branch model and call out AI coding tool support up front - Add dedicated 'AI-assisted development' section covering Claude Code and Codex CLI support, per-session container isolation, and the coming-soon network firewall management feature - Work 'devcontainer' terminology in throughout: intro, features list, benefits, Quick Start, and advanced features - Add AI-ready devcontainers bullet to core features list - Fix broken markdown links on OpenVSCode Server and Theia - Add AI coding agent benefit to 'Benefits for developers' - Replace duplicate IDE-unification sentence in product manager benefits with a more compelling branch-per-staging-environment point - Expand firewall bullet in advanced features to reference AI agent network isolation use case - Rewrite Roadmap section with specific near-term priorities (firewall management, Terraform) rather than vague open-ended copy https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS
…vcontainer note, case study - Add shields.io badges (GitHub stars, Docker pulls, licence, AI-ready) to the header for instant credibility signals - Add 'Why Dockside?' comparison table against GitHub Codespaces, Gitpod and Coder — highlights self-hosted, no cloud fees, root access, AI CLI support, and coming-soon per-container network firewall - Add devtainer terminology note clarifying how Dockside devcontainers relate to (but predate and differ from) the VS Code devcontainer spec - Annotate the 2021 video walkthrough so visitors aren't misled by the older UI - Rename case study section, remove corporate boilerplate, add social proof framing (high-traffic platform, built entirely in Dockside) - Remove awkward floating sentence between Features and Benefits https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS
… next steps, hive off advanced launch options, reorder/expand Setup+Usage sections; add runtimes.md Specific changes: - Rephrase 'per devcontainer firewall rules' -> 'per Docker custom network' throughout (README AI section, Why Dockside table, Roadmap) - Extend 'Work from anywhere' bullet: browser / VS Code / JetBrains / terminal editor - Merge standalone 'RunCVM KVM VMs' bullet into the runtimes line; annotate Sysbox, gVisor and RunCVM with one-line purpose summaries; link to new runtimes.md - Quick Start: add steps 4-5 guiding new users to launch a trial devcontainer and then configure users/profiles - Extract Advanced Launch Options (self-signed, self-supplied, GCP, Terraform) to docs/advanced-launch-options.md; README now has a single-sentence link - Reorder doc subsections to: Setup, Usage, CLI, Security, Upgrading - Expand Setup section: explain config location, auto-reload, and walk through Profiles, Users/Roles and SSH keys setup with direct anchor links into setup.md and extensions/ssh.md; promote SSH as a first-class feature - Expand Usage section: introductory sentence + bullet links to Launching, IDE, SSH and Sharing/access-control subsections - Create docs/extensions/runtimes.md: migrates Sysbox content from extensions/runtimes/sysbox.md, adds new RunCVM section (KVM VMs, requirements, install pointer) and new gVisor section (sandboxing, AI use case, caveats) - Update all references from extensions/runtimes/sysbox.md -> extensions/runtimes.md in README.md and extensions.md https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS
… tweaks
runtimes.md:
- New intro explaining the two distinct runtime use cases: launching devcontainers
in an alternative runtime vs launching Dockside itself in one; clarifies that
both modes apply to Sysbox and RunCVM, while gVisor is devcontainer-only
- Sysbox section split into 'Running devcontainers with Sysbox' (Docker-in-Dockside
devtainers) and 'Running Dockside itself with Sysbox' (self-contained mode);
table column headers rephrased for clarity
- RunCVM section split into 'Running devcontainers with RunCVM' and 'Running
Dockside itself with RunCVM'; latter references the 92-dockside-runcvm.json
example profile and --run-dockerd flag
- gVisor section: 'per-devcontainer' -> 'per-network' firewall wording aligned
with README change
ssh.md:
- 'Adding SSH keys to a user's profile': replaces empty stub with full
explanation of both users.json ssh props:
- authorized_keys: inbound SSH access; Dockside auto-writes to
~/.ssh/authorized_keys on every start; profile should mount ~/.ssh as
tmpfs (as in 10-alpine.json) to give Dockside write access
- keypairs: outbound SSH for git push/pull to GitHub/GitLab etc.; Dockside
auto-loads the keypair into the integrated ssh-agent on launch
- 'Adding SSH keys to a devtainer workspace': retitled 'manually'; notes that
users.json keypairs provisioning supersedes volume-mount approach; removes
now-redundant volume-mount code example; keeps security notes
README.md:
- Quick Start step 5: unlink 'register...' text; add explicit bold link to
setup.md alongside the existing Setup section anchor link
- Usage section: split SSH bullet into two — one for inbound SSH access (with
anchor to integrated-ssh-server-support), one for outbound keypairs/git
operations (with anchor to adding-ssh-keys-to-a-users-profile)
https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS
- `mountIDE` default should be `true` - `command` example pipes need escaping in markdown
- Add top-level intro explaining the two types of SSH support with
links to each section (inbound server / outbound agent)
- "Integrated SSH server support" section:
- Rephrase bullet from "auto-generates authorized_keys" to "manages
~/.ssh/authorized_keys, ensuring it is correctly populated..."
- Add new "Configuring user public keys" subsection containing the
authorized_keys users.json config and tmpfs profile requirement,
moved from the old mixed "Adding SSH keys to a user's profile"
subsection; section is now fully self-contained
- Tighten Notes: first note now directs to users.json as the fix;
second note links forward to the ssh-agent section
- "Local SSH agent support and automatic key provision" section:
- New intro sentence: "Dockside launches and manages an ssh-agent in
each devcontainer, providing secure SSH key access when using the
IDE and its integrated terminal."
- Rephrase subsequent paragraphs to flow from that intro
- Rename "Adding SSH keys to a user's profile" to "Configuring
keypairs for outbound SSH"; remove authorized_keys content (now
in section 1); section is now fully self-contained
- Rename "Adding SSH keys to a devtainer workspace manually" to
"Adding SSH keys to a devcontainer manually"; simplify wording
https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS
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.
Summary
This PR adds support for multiple web IDEs (Theia and OpenVSCode) and introduces comprehensive documentation for the new
docksideCLI tool. The changes enable users to select their preferred IDE at devtainer launch time and provide programmatic access to Dockside functionality.Key Changes
IDE Selection and Management
IDEs: Specify allowed IDE installations for a profileoptions: Dynamic user-input fields for profile-specific configuration (e.g., git branch, PR number)CLI Documentation
docksideCLI toolProfile Configuration Enhancements
gitURLsproperty to control allowed git repository URLsnetworksandruntimesproperties to support auto-detection via["*"]wildcardoptionsfield for dynamic form inputs injected as environment variablesAdditional Features
gh) with per-user token support to core features listgh_tokenuser configuration for automatic GitHub authenticationDevelopment Documentation
/opt/dockside/system/latest/bin/)test.sh) with checks performedRoadmap Updates
Miscellaneous
https://claude.ai/code/session_01Cz1yNYuLBuADxd7woZ3vSS