[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9919":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":14,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},9919,"rancher-desktop","rancher-sandbox\u002Francher-desktop","rancher-sandbox","Container Management and Kubernetes on the Desktop","https:\u002F\u002Francherdesktop.io",null,"TypeScript",7189,373,52,1105,0,7,14,23,89.92,"Apache License 2.0",false,"main",true,[26,27,28,29,30],"containers","kubernetes","linux","macos","windows","2026-06-12 04:00:47","# Rancher Desktop\n\n[![Ask DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg)](https:\u002F\u002Fdeepwiki.com\u002Francher-sandbox\u002Francher-desktop)\n\nRancher Desktop is an open-source project that brings Kubernetes and\ncontainer management to the desktop. It runs on Windows, macOS and\nLinux. This README pertains to the development of Rancher Desktop.\nFor user-oriented information about Rancher Desktop, please see [rancherdesktop.io][home].\nFor user-oriented documentation, please see [docs.rancherdesktop.io][docs].\n\n[home]: https:\u002F\u002Francherdesktop.io\n[docs]: https:\u002F\u002Fdocs.rancherdesktop.io\n\n\n## Overview\n\nRancher Desktop is an Electron application that is mainly written in TypeScript.\nIt bundles a variety of other technologies in order to provide one cohesive application.\nIt includes a command line tool, `rdctl`, which is written in Go.\nMost developer activities, such as running a development build, building\u002Fpackaging\nRancher Desktop, running unit tests, and running end-to-end tests, are done through\n`yarn` scripts. Some exceptions exist, such as running BATS tests.\n\n\n## Setup\n\n### Windows\n\nThere are two options for building from source on Windows: with a\n[Development VM Setup](#development-vm-setup) or\n[Manual Development Environment Setup](#manual-development-environment-setup)\nwith an existing Windows installation.\n\n\n#### Development VM Setup\n\n1. Download a Microsoft Windows 10 [development virtual machine].\n   All of the following steps should be done in that virtual machine.\n2. Open a PowerShell prompt (hit Windows Key + `X` and open\n   `Windows PowerShell`).\n3. Run the [automated setup script]:\n\n   ```powershell\n   Set-ExecutionPolicy RemoteSigned -Scope CurrentUser\n   iwr -useb 'https:\u002F\u002Fgithub.com\u002Francher-sandbox\u002Francher-desktop\u002Fraw\u002Fmain\u002Fscripts\u002Fwindows-setup.ps1' | iex\n   ```\n\n4. Close the privileged PowerShell prompt.\n5. Ensure `msbuild_path` and `msvs_version` are configured correctly in `.npmrc` file. Run the following commands to set these properties:\n\n   ```\n   npm config set msvs_version \u003Cvisual-studio-version-number>\n   npm config set msbuild_path \u003Cpath\u002Fto\u002FMSBuild.exe>\n   ```\n\n   For example for Visual Studio 2022:\n\n   ```\n   npm config set msvs_version 2022\n   npm config set msbuild_path \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe\"\n   ```\n\n   If you get an error message when trying to run `npm config set...`, run `npm config edit` and then add lines like\n\n   ```\n   msvs_version=2022\n   msbuild_path=C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe\n   ```\n\n   Do not quote the values to the right side of the equal sign. The quotes aren't needed, and it's possible that some\n   processors will treat them as literal parts of the path, and then fail.\n7. Configure `git` to work with linux- and macos-originated files:\n   ```\n   git config --global --replace-all core.autocrlf false\n   git config --global --replace-all core.eol lf\n   ```\nIf you find the `lint:go` tests are failing mysteriously, it's possible that the line-endings are incorrect.\n\nYou can now clone the repository and run `yarn`.\n\n[development virtual machine]: https:\u002F\u002Fdeveloper.microsoft.com\u002Fen-us\u002Fwindows\u002Fdownloads\u002Fvirtual-machines\u002F\n[automated setup script]: .\u002Fscripts\u002Fwindows-setup.ps1\n\n\n#### Manual Development Environment Setup\n\n1. Install [Windows Subsystem for Linux (WSL)] on your machine. Skip this step, if WSL is already installed.\n2. Open a PowerShell prompt (hit Windows Key + `X` and open `Windows PowerShell`).\n3. Install [Scoop] via `iwr -useb get.scoop.sh | iex`.\n4. Install 7zip, git, go, mingw, nvm, and unzip via `scoop install 7zip git go mingw nvm python unzip`.\n   Check node version with `nvm list`. If node v22 is not installed or set as the current version, then install using `nvm install 22` and set as current using `nvm use 22.xx.xx`.\n5. Install the yarn package manager via `npm install --global yarn`\n6. Install Visual Studio 2017 or higher. As of this writing the latest version is available at [https:\u002F\u002Fvisualstudio.microsoft.com\u002Fdownloads\u002F]; if that's changed, a good search engine should find it.\n7. Make sure you have the `Windows SDK` component installed. This [Visual Studio docs] describes steps to install components.\n   The [Desktop development with C++] workload needs to be selected, too.\n8. Configure `git` to work with linux- and macos-originated files:\n   ```\n   git config --global --replace-all core.autocrlf false\n   git config --global --replace-all core.eol lf\n   ```\nIf you find the `lint:go` tests are failing mysteriously, it's possible that the line-endings are incorrect.\n9. Ensure `msbuild_path` and `msvs_version` are configured correctly in `.npmrc` file. Run the following commands to set these properties:\n\n   ```\n   npm config set msvs_version \u003Cvisual-studio-version-number>\n   npm config set msbuild_path \u003Cpath\u002Fto\u002FMSBuild.exe>\n   ```\n\n   For example for Visual Studio 2022:\n\n   ```\n   npm config set msvs_version 2022\n   npm config set msbuild_path \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe\"\n   ```\n\n   If you get an error message when trying to run `npm config set...`, run `npm config edit` and then add lines like\n\n   ```\n   msvs_version=2022\n   msbuild_path=C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe\n   ```\n\n   Do not quote the values to the right side of the equal sign. They aren't needed, and it's possible that some\n   processor will treat them as literal parts of the path, and then fail.\n\nYou can now clone the repository and run `yarn`.\n\n[Scoop]: https:\u002F\u002Fscoop.sh\u002F\n[Visual Studio docs]: https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fvisualstudio\u002Finstall\u002Fmodify-visual-studio?view=vs-2022\n[Windows Subsystem for Linux (WSL)]: https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fwindows\u002Fwsl\u002Finstall\n[Desktop development with C++]: https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fvisualstudio\u002Finstall\u002Fmodify-visual-studio?view=vs-2022#change-workloads-or-individual-components\n\n### macOS\n\nInstall `nvm` to get Node.js and npm:\n\nSee https:\u002F\u002Fgithub.com\u002Fnvm-sh\u002Fnvm#installing-and-updating and run the `curl` or `wget`\ncommand to install nvm.\n\nNote that this script adds code dealing with `nvm` to a profile file\n(like `~\u002F.bash_profile`). To add access to `nvm` to a current shell session,\nyou'll need to `source` that file.\n\nCurrently we build Rancher Desktop with Node 22. To install it, run:\n\n```\nnvm install 22.14\n```\n\nNext, you'll need to install the yarn package manager:\n\n```\nnpm install --global yarn\n```\n\nYou'll also need to run `brew install go` if you haven't installed go.\n\nThen you can install dependencies with:\n```\nyarn\n```\n\n> ### ⚠️ Working on a mac with an M1 chip?\n>\n> You will need to set the `M1` environment variable before installing dependencies and running any npm scripts:\n>\n> ```\n> export M1=1\n> yarn\n> ```\n>\n> You will want to run `git clean -fdx` to clean out any cached assets and re-downloaded with the correct arch before running `yarn` if you previously installed dependencies without setting `M1` first.\n\n### Linux\n\nEnsure you have the following installed:\n\n- [Node.js][Node.js] v22. **Make sure you have any development packages\n  installed.** For example, on openSUSE Leap 15.6 you would need to install\n  `nodejs22` and `nodejs22-devel`.\n\n- [yarn classic][yarn-classic]\n\n- Go 1.22 or later.\n\n- Dependencies described in the [`node-gyp` docs][node-gyp] installation.\n  This is required to install the [`ffi-napi`][ffi-napi] npm package. These docs mention\n  \"a proper C\u002FC++ compiler toolchain\". You can install `gcc` and `g++` for this.\n\nThen you can install dependencies with:\n\n```\nyarn\n```\n\nYou can then run Rancher Desktop as described below. It may fail on the first run -\nif this happens, try doing a factory reset and re-running, which has been known\nto solve this issue.\n\n[Node.js]: https:\u002F\u002Fnodejs.org\u002F\n[ffi-napi]: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fffi-napi\n[node-gyp]: https:\u002F\u002Fgithub.com\u002Fnodejs\u002Fnode-gyp#on-unix\n[yarn-classic]: https:\u002F\u002Fclassic.yarnpkg.com\u002Flang\u002Fen\u002Fdocs\u002Finstall\u002F#debian-stable\n\n\n## Running\n\nOnce you have your dependencies installed you can run a development version\nof Rancher Desktop with:\n\n```\nyarn dev\n```\n\n\n## Tests\n\nTo run the unit tests:\n\n```\nyarn test\n```\n\nTo run the integration tests:\n\n```\nyarn test:e2e\n```\n\n\n## Building\n\nRancher can be built from source on Windows, macOS or Linux.\nCross-compilation is currently not supported. To run a build do:\n\n```\nyarn build\nyarn package\n```\n\nThe build output goes to `dist\u002F`.\n\n### Debugging builds with the Chrome remote debugger\n\nThe Chrome remote debugger allows you to debug Electron apps using Chrome Developer Tools. You can use it to access log messages that might output to the developer console of the renderer process. This is especially helpful for getting additional debug information in production builds of Rancher Desktop.\n\n#### Starting Rancher Desktop with Remote Debugging Enabled\n\nTo enable remote debugging, start Rancher Desktop with the `--remote-debugging-port` argument.\n\nOn Linux, start Rancher Desktop with the following command:\n\n``` bash\nrancher-desktop --remote-debugging-port=\"8315\" --remote-allow-origins=http:\u002F\u002Flocalhost:8315\n```\n\nOn macOS, start Rancher Desktop with the following command:\n\n```\n\u002FApplications\u002FRancher\\ Desktop.app\u002FContents\u002FMacOS\u002FRancher\\ Desktop --remote-debugging-port=\"8315\" --remote-allow-origins=http:\u002F\u002Flocalhost:8315\n```\n\nOn Windows, start Rancher Desktop with the following command:\n\n``` powershell\ncd 'C:\\Program Files\\Rancher Desktop\\'\n& '.\\Rancher Desktop.exe' --remote-debugging-port=\"8315\" --remote-allow-origins=http:\u002F\u002Flocalhost:8315\n```\n\nAfter Rancher Desktop starts, open Chrome and navigate to `http:\u002F\u002Flocalhost:8315\u002F`. Select the available target to start remote debugging Rancher Desktop.\n\n![image](https:\u002F\u002Fgithub.com\u002Frak-phillip\u002Francher-desktop\u002Fassets\u002F835961\u002F4f5fcb33-d381-4900-a836-685eab3af441)\n\n![image](https:\u002F\u002Fgithub.com\u002Frak-phillip\u002Francher-desktop\u002Fassets\u002F835961\u002F91b4ee63-7093-4377-b8b3-f2f4a57a16a7)\n\n#### Remote Debugging an Extension\n\nTo remote debug an extension, follow the same process as remote debugging a build. However, you will need to load an extension before navigating to `http:\u002F\u002Flocalhost:8315\u002F`. Both Rancher Desktop and the loaded extension should be listed as available targets.\n\n![image](https:\u002F\u002Fgithub.com\u002Frak-phillip\u002Francher-desktop\u002Fassets\u002F835961\u002F71bb7eec-38e5-4744-a547-ebb36048918a)\n\n![image](https:\u002F\u002Fgithub.com\u002Frak-phillip\u002Francher-desktop\u002Fassets\u002F835961\u002Ff4aad3e1-dabc-473e-9404-05609216cd03)\n\n### Debugging dev env with GoLand\n\nThe following steps have been tested with GoLand on Linux but might work for other\nJetBrains IDEs in a similar way.\n\n1. Install the Node.js plugin (via `File > Settings > Plugins`)\n\n   ![image](https:\u002F\u002Fgithub.com\u002Fs0nea\u002Francher-desktop\u002Fassets\u002F8761082\u002Ff9574abb-06d9-4132-a14b-c3d445e87f7d)\n\n2. Go to the \"Run\u002FDebug Configurations\" dialog (via `Run > Edit Configurations...`)\n3. Add a new Node.js configuration with the following settings:\n   - Name: a name for the debug configuration, e.g. `rancher desktop`\n   - Node interpreter: choose your installed node interpreter, e.g. `\u002Fusr\u002Fbin\u002Fnode`\n   - Node parameters: `scripts\u002Fts-wrapper.js scripts\u002Fdev.ts`\n   - Working directory: choose the working directory of your project, e.g.\n     `~\u002Fsrc\u002Francher-desktop`\n\n   ![image](https:\u002F\u002Fgithub.com\u002Fs0nea\u002Francher-desktop\u002Fassets\u002F8761082\u002F41686095-04ba-4d9e-bac1-b5587d146381)\n\n4. Save the configuration\n5. You can now set a breakpoint and click \"Debug 'rancher desktop'\" to start debugging\n\n   ![image](https:\u002F\u002Fgithub.com\u002Fs0nea\u002Francher-desktop\u002Fassets\u002F8761082\u002F87ea45f4-0a4d-4a52-9f3b-866c45e3fe2a)\n\n\n## Development Builds\n\n### Windows and macOS\n\nEach commit triggers a GitHub Actions run that results in application bundles\n(`.exe`s and `.dmg`s) being uploaded as artifacts. This can be useful if you\nwant to test the latest build of Rancher Desktop as built by the build system.\nYou can download these artifacts from the Summary page of completed `package`\nactions.\n\n\n### Linux\n\nSimilar to Windows and macOS, Linux builds of Rancher Desktop are made from each\ncommit. However on Linux, only part of the process is done by GitHub Actions.\nThe final part of it is done by [Open Build Service][OBS].\n\nThere are two channels of the Rancher Desktop repositories: `dev` and `stable`.\n`stable` is the channel that most users use. It is the one that users are\ninstructed to add in the official [documentation][docs], and the one that contains\nbuilds that are created from official releases. `dev` is the channel that we are\ninterested in here: it contains builds created from the latest commit made on\nthe `main` branch, and on any branches that match the format `release-*`. To\nlearn how to install the development repositories, see below.\n\nWhen using the `dev` repositories, it is important to understand the format of\nthe versions of Rancher Desktop available from the `dev` repositories.\nThe versions are in the format:\n\n```\n\u003Cpriority>.\u003Cbranch>.\u003Ccommit_time>.\u003Ccommit>\n```\n\nwhere:\n\n`priority` is a meaningless number that exists to give versions built from the `main`\nbranch priority over versions built from the `release-*` branches when updating.\n\n`branch` is the branch name; dashes are removed due to constraints imposed by\npackage formats.\n\n`commit_time` is the UNIX timestamp of the commit used to make the build.\n\n`commit` is the shortened hash of the commit used to make the build.\n\n[docs]: https:\u002F\u002Fdocs.rancherdesktop.io\n[OBS]: https:\u002F\u002Fbuild.opensuse.org\u002F\n\n\n#### `.deb` Development Repository\n\nYou can add the repo with the following steps:\n\n```\ncurl -s https:\u002F\u002Fdownload.opensuse.org\u002Frepositories\u002Fisv:\u002FRancher:\u002Fdev\u002Fdeb\u002FRelease.key | gpg --dearmor | sudo dd status=none of=\u002Fusr\u002Fshare\u002Fkeyrings\u002Fisv-rancher-dev-archive-keyring.gpg\necho 'deb [signed-by=\u002Fusr\u002Fshare\u002Fkeyrings\u002Fisv-rancher-dev-archive-keyring.gpg] https:\u002F\u002Fdownload.opensuse.org\u002Frepositories\u002Fisv:\u002FRancher:\u002Fdev\u002Fdeb\u002F .\u002F' | sudo dd status=none of=\u002Fetc\u002Fapt\u002Fsources.list.d\u002Fisv-rancher-dev.list\nsudo apt update\n```\n\nYou can see available versions with:\n\n```\napt list -a rancher-desktop\n```\n\nOnce you find the version you want to install you can install it with:\n\n```\nsudo apt install rancher-desktop=\u003Cversion>\n```\n\nThis works even if you already have a version of Rancher Desktop installed.\n\n\n#### `.rpm` Development Repository\n\nYou can add the repo with:\n\n```\nsudo zypper addrepo https:\u002F\u002Fdownload.opensuse.org\u002Frepositories\u002Fisv:\u002FRancher:\u002Fdev\u002Frpm\u002Fisv:Rancher:dev.repo\nsudo zypper refresh\n```\n\nYou can see available versions with:\n\n```\nzypper search -s rancher-desktop\n```\n\nFinally, install the version you want with:\n\n```\nzypper install --oldpackage rancher-desktop=\u003Cversion>\n```\n\nThis works even if you already have a version of Rancher Desktop installed.\n\n\n#### Development AppImages\n\nThere are no repositories for AppImages, but you can access the [latest development AppImage builds].\n\n[latest development AppImage builds]: https:\u002F\u002Fdownload.opensuse.org\u002Frepositories\u002Fisv:\u002FRancher:\u002Fdev\u002FAppImage\u002F\n\n## API\n\nRancher Desktop supports a limited HTTP-based API. The API is defined in\n`pkg\u002Francher-desktop\u002Fassets\u002Fspecs\u002Fcommand-api.yaml`, and you can see examples of how it's\ninvoked in the client code at `go\u002Fsrc\u002Frdctl`.\n\n### Stability\n\nThe API is currently at version 1, but is still considered internal and experimental, and\nis subject to change without any advance notice. At some point we expect that necessary\nchanges to the API will go through a warning and deprecation notice.\n\n## Contributing\n\nPlease see [the document about contributing](CONTRIBUTING.md).\n\n\n## Further Reading\n\nPlease see the [docs](docs\u002Fdevelopment\u002F) directory for further developer documentation.\n","Rancher Desktop 是一个开源项目，旨在为桌面环境提供Kubernetes和容器管理功能。它支持Windows、macOS和Linux操作系统。该项目主要使用TypeScript编写，并集成了多种技术以形成一个统一的应用程序，还包括了一个用Go语言编写的命令行工具`rdctl`。Rancher Desktop非常适合开发者在本地进行Kubernetes集群的开发与测试工作，以及学习Kubernetes和容器技术。通过这个平台，用户可以轻松地在个人电脑上搭建和管理Kubernetes环境，无需复杂的云服务配置。",2,"2026-06-11 03:25:25","top_topic"]