-
Notifications
You must be signed in to change notification settings - Fork 929
docs: add Coder Desktop early preview documentation #16544
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
d3f6c25
init desktop section
EdwardAngert 412d956
add placeholder icon
EdwardAngert e92191b
edit
EdwardAngert a29e8cc
install and configure coder desktop mac homebrew
EdwardAngert 3fa35b4
Update docs/manifest.json
EdwardAngert 1da456a
Update docs/user-guides/desktop/index.md
EdwardAngert fe3aad2
include feedback from review
EdwardAngert eb8b566
adjust network extension step
EdwardAngert 653ff5a
Update docs/user-guides/desktop/index.md
EdwardAngert 1fd186a
adjust screenshot sizes
EdwardAngert df06b1d
Update docs/manifest.json
EdwardAngert 5ea3bee
Merge remote-tracking branch 'origin/main' into 16540-desktop-beta
EdwardAngert 0356dac
temp remove windows
EdwardAngert 3f0cb83
test alpha in manifest
EdwardAngert aff01a9
test eabadge
EdwardAngert 56d916c
earlyaccess?
EdwardAngert ceaca40
add ping6 step
EdwardAngert 9ddccf2
screenshot and workspace steps
EdwardAngert 70fe6d4
Revert "temp remove windows"
EdwardAngert 028acc4
add windows steps; update login screenshot
EdwardAngert 72a7a77
Update docs/manifest.json
EdwardAngert 69b7fe9
Update docs/manifest.json
EdwardAngert 0e0e4d8
update login screenshot
EdwardAngert b80f539
docs changes
ethanndickson a96b9b4
fixup
ethanndickson 7ad6e8b
remove note blocks
ethanndickson bc0c79f
beta -> alpha
ethanndickson 1433eb1
remove unused react EA badge
ethanndickson 56f0952
add version requirement
ethanndickson 6a39e67
link to future v2.20
ethanndickson cffa373
Update Coder Desktop doc to reflect "Early Access" status
matifali 3525e55
Add tabs for browser-specific instructions
matifali File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,188 @@ | ||
# Coder Desktop (Early Access) | ||
|
||
Use Coder Desktop to work on your workspaces as though they're on your LAN, no | ||
port-forwarding required. | ||
|
||
> ⚠️ Note: Coder Desktop requires a Coder deployment running [v2.20.0](https://github.com/coder/coder/releases/tag/v2.20.0) or later. | ||
|
||
## Install Coder Desktop | ||
|
||
<div class="tabs"> | ||
|
||
You can install Coder Desktop on macOS or Windows. | ||
|
||
### macOS | ||
|
||
1. Use [Homebrew](https://brew.sh/) to install Coder Desktop: | ||
|
||
```shell | ||
brew install --cask coder/coder/coder-desktop | ||
``` | ||
|
||
Alternatively, you can manually install Coder Desktop from the [releases page](https://github.com/coder/coder-desktop-macos/releases). | ||
|
||
1. Open **Coder Desktop** from the Applications directory. When macOS asks if you want to open it, select **Open**. | ||
|
||
1. The application is treated as a system VPN. macOS will prompt you to confirm with: | ||
|
||
**"Coder Desktop" would like to use a new network extension** | ||
|
||
Select **Open System Settings**. | ||
|
||
1. In the **Network Extensions** system settings, enable the Coder Desktop extension. | ||
|
||
1. Continue to the [configuration section](#configure). | ||
|
||
### Windows | ||
|
||
1. Download the latest `CoderDesktop` installer executable (`.exe`) from the [coder-desktop-windows release page](https://github.com/coder/coder-desktop-windows/releases). | ||
|
||
Choose the architecture that fits your Windows system, `x64` or `arm64`. | ||
|
||
1. Open the `.exe` file, acknowledge the license terms and conditions, and select **Install**. | ||
|
||
1. If a suitable .NET runtime is not already installed, the installation might prompt you with the **.NET Windows Desktop Runtime** installation. | ||
|
||
In that installation window, select **Install**. Select **Close** when the runtime installation completes. | ||
|
||
1. When the Coder Desktop installation completes, select **Close**. | ||
|
||
1. Find and open **Coder Desktop** from your Start Menu. | ||
|
||
1. Some systems require an additional Windows App Runtime SDK. | ||
|
||
Select **Yes** if you are prompted to install it. | ||
This will open your default browser where you can download and install the latest stable release of the Windows App Runtime SDK. | ||
|
||
Reopen Coder Desktop after you install the runtime. | ||
|
||
1. Coder Desktop starts minimized in the Windows System Tray. | ||
|
||
You might need to select the **^** in your system tray to show more icons. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe add a comment about how you can pin it by going to (at least on Win 11) Settings > Personalization > Taskbar > Other system tray icons, then enabling Coder Desktop |
||
|
||
1. Continue to the [configuration section](#configure). | ||
|
||
</div> | ||
|
||
## Configure | ||
|
||
Before you can use Coder Desktop, you will need to sign in. | ||
|
||
1. Open the Desktop menu and select **Sign in**: | ||
|
||
<Image height="325px" src="../../images/user-guides/desktop/coder-desktop-pre-sign-in.png" alt="Coder Desktop menu before the user signs in" align="center" /> | ||
|
||
1. In the **Sign In** window, enter your Coder deployment's URL and select **Next**: | ||
|
||
 | ||
|
||
1. macOS: Select the link to your deployment's `/cli-auth` page to generate a [session token](../../admin/users/sessions-tokens.md). | ||
|
||
Windows: Select **Generate a token via the Web UI**. | ||
|
||
1. In your web browser, you may be prompted to sign in to Coder with your credentials: | ||
|
||
<Image height="412px" src="../../images/templates/coder-login-web.png" alt="Sign in to your Coder deployment" align="center" /> | ||
|
||
1. Copy the session token to the clipboard: | ||
|
||
<Image height="350px" src="../../images/templates/coder-session-token.png" alt="Copy session token" align="center" /> | ||
|
||
1. Paste the token in the **Session Token** field of the **Sign In** screen, then select **Sign In**: | ||
|
||
 | ||
|
||
1. macOS: Allow the VPN configuration for Coder Desktop if you are prompted. | ||
|
||
<Image height="350px" src="../../images/user-guides/desktop/mac-allow-vpn.png" alt="Copy session token" align="center" /> | ||
|
||
1. Select the Coder icon in the menu bar (macOS) or system tray (Windows), and click the CoderVPN toggle to start the VPN. | ||
|
||
This may take a few moments, as Coder Desktop will download the necessary components from the Coder server if they have been updated. | ||
|
||
1. macOS: You may be prompted to enter your password to allow CoderVPN to start. | ||
|
||
1. CoderVPN is now running! | ||
|
||
## CoderVPN | ||
|
||
While active, CoderVPN will list your owned workspaces and configure your system to be able to connect to them over private IPv6 addresses and custom hostnames ending in `.coder`. | ||
|
||
 | ||
|
||
To copy the `.coder` hostname of a workspace agent, you can click the copy icon beside it. | ||
|
||
On macOS you can use `ping6` in your terminal to verify the connection to your workspace: | ||
|
||
```shell | ||
ping6 -c 5 your-workspace.coder | ||
``` | ||
|
||
On Windows, you can use `ping` in a Command Prompt or PowerShell terminal to verify the connection to your workspace: | ||
|
||
```shell | ||
ping -n 5 your-workspace.coder | ||
``` | ||
|
||
Any services listening on ports in your workspace will be available on the same hostname. For example, you can access a web server on port `8080` by visiting `http://your-workspace.coder:8080` in your browser. | ||
|
||
You can also connect to the SSH server in your workspace using any SSH client, such as OpenSSH or PuTTY: | ||
|
||
```shell | ||
ssh your-workspace.coder | ||
``` | ||
|
||
> ⚠️ Note: Currently, the Coder IDE extensions for VSCode and JetBrains create their own tunnel and do not utilize the CoderVPN tunnel to connect to workspaces. | ||
|
||
## Accessing web apps in a secure browser context | ||
|
||
Some web applications require a [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts) to function correctly. | ||
A browser typically considers an origin secure if the connection is to `localhost`, or over `HTTPS`. | ||
|
||
As CoderVPN uses its own hostnames and does not provide TLS to the browser, Google Chrome and Firefox will not allow any web APIs that require a secure context. | ||
|
||
> Note: Despite the browser showing an insecure connection without `HTTPS`, the underlying tunnel is encrypted with WireGuard in the same fashion as other Coder workspace connections (e.g. `coder port-forward`). | ||
|
||
If you require secure context web APIs, you will need to mark the workspace hostnames as secure in your browser settings. | ||
|
||
We are planning some changes to Coder Desktop that will make accessing secure context web apps easier. Stay tuned for updates. | ||
|
||
<div class="tabs"> | ||
|
||
### Chrome | ||
|
||
1. Open Chrome and visit `chrome://flags/#unsafely-treat-insecure-origin-as-secure`. | ||
|
||
1. Enter the full workspace hostname, including the `http` scheme and the port (e.g. `http://your-workspace.coder:8080`), into the **Insecure origins treated as secure** text field. | ||
|
||
If you need to enter multiple URLs, use a comma to separate them. | ||
|
||
 | ||
|
||
1. Ensure that the dropdown to the right of the text field is set to **Enabled**. | ||
|
||
1. You will be prompted to relaunch Google Chrome at the bottom of the page. Select **Relaunch** to restart Google Chrome. | ||
|
||
1. On relaunch and subsequent launches, Google Chrome will show a banner stating "You are using an unsupported command-line flag". This banner can be safely dismissed. | ||
|
||
1. Web apps accessed on the configured hostnames and ports will now function correctly in a secure context. | ||
|
||
### Firefox | ||
|
||
1. Open Firefox and visit `about:config`. | ||
|
||
1. Read the warning and select **Accept the Risk and Continue** to access the Firefox configuration page. | ||
|
||
1. Enter `dom.securecontext.allowlist` into the search bar at the top. | ||
|
||
1. Select **String** on the entry with the same name at the bottom of the list, then select the plus icon on the right. | ||
|
||
1. In the text field, enter the full workspace hostname, without the `http` scheme and port (e.g. `your-workspace.coder`), and then select the tick icon. | ||
|
||
If you need to enter multiple URLs, use a comma to separate them. | ||
|
||
 | ||
|
||
1. Web apps accessed on the configured hostnames will now function correctly in a secure context without requiring a restart. | ||
|
||
</div> |
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.