diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync-add.png b/docs/images/user-guides/desktop/coder-desktop-file-sync-add.png new file mode 100644 index 0000000000000..35e59d76866f2 Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync-add.png differ diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync-conflicts-mouseover.png b/docs/images/user-guides/desktop/coder-desktop-file-sync-conflicts-mouseover.png new file mode 100644 index 0000000000000..80a5185585c1a Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync-conflicts-mouseover.png differ diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync-staging.png b/docs/images/user-guides/desktop/coder-desktop-file-sync-staging.png new file mode 100644 index 0000000000000..6b846f3ef244f Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync-staging.png differ diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync-watching.png b/docs/images/user-guides/desktop/coder-desktop-file-sync-watching.png new file mode 100644 index 0000000000000..7875980186e33 Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync-watching.png differ diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync.png b/docs/images/user-guides/desktop/coder-desktop-file-sync.png new file mode 100644 index 0000000000000..5976528010371 Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync.png differ diff --git a/docs/images/user-guides/desktop/coder-desktop-workspaces.png b/docs/images/user-guides/desktop/coder-desktop-workspaces.png index 664228fe214e7..c621c7e541094 100644 Binary files a/docs/images/user-guides/desktop/coder-desktop-workspaces.png and b/docs/images/user-guides/desktop/coder-desktop-workspaces.png differ diff --git a/docs/manifest.json b/docs/manifest.json index ea1d19561593f..bbeb287b41985 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -193,7 +193,7 @@ "description": "Use Coder Desktop to access your workspace like it's a local machine", "path": "./user-guides/desktop/index.md", "icon_path": "./images/icons/computer-code.svg", - "state": ["early access"] + "state": ["beta"] }, { "title": "Workspace Management", diff --git a/docs/user-guides/desktop/index.md b/docs/user-guides/desktop/index.md index 72d627c7a3e71..b10a8f20647e9 100644 --- a/docs/user-guides/desktop/index.md +++ b/docs/user-guides/desktop/index.md @@ -1,4 +1,4 @@ -# Coder Desktop (Early Access) +# Coder Desktop (Beta) Use Coder Desktop to work on your workspaces as though they're on your LAN, no port-forwarding required. @@ -22,7 +22,7 @@ You can install Coder Desktop on macOS or Windows. 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. Open **Coder Desktop** from the Applications directory. 1. The application is treated as a system VPN. macOS will prompt you to confirm with: @@ -129,28 +129,74 @@ While active, Coder Connect will list the workspaces you own and will configure 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: +You can also connect to the SSH server in your workspace using any SSH client, such as OpenSSH or PuTTY: ```shell - ping6 -c 5 your-workspace.coder + ssh your-workspace.coder ``` -On Windows, you can use `ping` in a Command Prompt or PowerShell terminal to verify the connection to your workspace: +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. + +> [!NOTE] +> Currently, the Coder IDE extensions for VSCode and JetBrains create their own tunnel and do not utilize the Coder Connect tunnel to connect to workspaces. + +### Ping your workspace + +
+ +### macOS + +Use `ping6` in your terminal to verify the connection to your workspace: ```shell - ping -n 5 your-workspace.coder + ping6 -c 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. +### Windows -You can also connect to the SSH server in your workspace using any SSH client, such as OpenSSH or PuTTY: +Use `ping` in a Command Prompt or PowerShell terminal to verify the connection to your workspace: ```shell - ssh your-workspace.coder + ping -n 5 your-workspace.coder ``` -> [!NOTE] -> Currently, the Coder IDE extensions for VSCode and JetBrains create their own tunnel and do not utilize the Coder Connect tunnel to connect to workspaces. +
+ +## Sync a local directory with your workspace + +Coder Desktop file sync provides bidirectional synchronization between a local directory and your workspace. +You can work offline, add screenshots to documentation, or use local development tools while keeping your files in sync with your workspace. + +1. Create a new local directory. + + If you select an existing clone of your repository, Desktop will recognize it as conflicting files. + +1. In the Coder Desktop app, select **File sync**. + + ![Coder Desktop File Sync screen](../../images/user-guides/desktop/coder-desktop-file-sync.png) + +1. Select the **+** in the corner to select the local path, workspace, and remote path, then select **Add**: + + ![Coder Desktop File Sync add paths](../../images/user-guides/desktop/coder-desktop-file-sync-add.png) + +1. File sync clones your workspace directory to your local directory, then watches for changes: + + ![Coder Desktop File Sync watching](../../images/user-guides/desktop/coder-desktop-file-sync-watching.png) + + For more information about the current status, hover your mouse over the status. + +File sync excludes version control system directories like `.git/` from synchronization, so keep your Git-cloned repository wherever you run Git commands. +This means that if you use an IDE with a built-in terminal to edit files on your remote workspace, that should be the Git clone and your local directory should be for file syncs. + +### File sync conflicts + +File sync shows a `Conflicts` status when it detects conflicting files. + +You can hover your mouse over the status for the list of conflicts: + +![Desktop file sync conflicts mouseover](../../images/user-guides/desktop/coder-desktop-file-sync-conflicts-mouseover.png) + +If you encounter a synchronization conflict, delete the conflicting file that contains changes you don't want to keep. ## Accessing web apps in a secure browser context