[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-8999":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":16,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":35,"discoverSource":36},8999,"kube-forwarder","pixel-point\u002Fkube-forwarder","pixel-point","Easy to use Kubernetes port forwarding manager","https:\u002F\u002Fkube-forwarder.pixelpoint.io\u002F",null,"Vue",1129,194,13,57,0,2,56.07,"MIT License",false,"master",[23,24,25,26,27,28,29,30,31],"devops","electron","k8s","kubernetes","linux","macos","port-forwarding","vue","windows","2026-06-12 04:00:42","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fnodejs.org\u002Fen\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNode-v10.16.0-brightgreen.svg\" alt=\"node version\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Felectronjs.org\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FElectron-v5.0.6-brightgreen.svg\" alt=\"electron version\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Felectronjs.org\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVue-v2.6.10-brightgreen.svg\" alt=\"vue version\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\"> Kube Forwarder\u003C\u002Fh1>\n\u003Ch3 align=\"center\">Easy to use Kubernetes port forwarding manager\u003C\u002Fh3>\n\u003Ch4 align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fkube-forwarder.pixelpoint.io\">Visit a Website\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpixel-point\u002Fkube-forwarder\u002Freleases\u002Flatest\u002Fdownload\u002Fkube-forwarder.dmg\">Download for macOS\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpixel-point\u002Fkube-forwarder\u002Freleases\u002Flatest\u002Fdownload\u002Fkube-forwarder.exe\">Download for Windows\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpixel-point\u002Fkube-forwarder\u002Freleases\u002Flatest\u002Fdownload\u002Fkube-forwarder.AppImage\">Download for Linux\u003C\u002Fa>\n  ·\n  \u003Ca href=\"#install-with-homebrew\">Install with Homebrew\u003C\u002Fa>\n\u003C\u002Fh4>\n\n\n![Clusters Page](https:\u002F\u002Fuser-images.githubusercontent.com\u002F2697570\u002F60103100-524d5d80-975f-11e9-84ab-bcc962be0bb7.png)\n\n## Features\n\n**Auto-reconnect**\n\nKube Forwarder watches for connection status and always tries reconnect on failure\n\n**Multiple clusters support**\n\nBookmark and forward Kubernetes services from multiple clusters easily like never before\n\n**Share bookmarks**\n\nUse import and export functionality to share bookmarked services with your team or simply backup it\n\n**Zero native dependencies**\n\nUse port-forwarding without installing kubectl and avoid explanations to developers on how to use it\n\n## Optional dependencies\n\n* [Google Cloud SDK](https:\u002F\u002Fcloud.google.com\u002Fsdk\u002F)\n* [AWS CLI](https:\u002F\u002Fdocs.aws.amazon.com\u002Fcli\u002F)\n\n## Functionality walk-through\n\n### Add a cluster(s)\n\nBefore you start forwarding internal resources to your local machine, you have to add cluster configuration.\nTo do this we have 3 different options in the app:\n\n1) Auto-detection of ~\u002F.kube\u002Fconfig file and parsing settings from it\n1) Manual adding of Kubernetes config by selecting a file(s)\n1) Manual adding of Kubernetes config by pasting a text\n1) Import of the JSON file that could be generated via Kube Forwarder export functionality\n\nWhen you add a new cluster via auto-detection (option 1) or manually using a file(a) selection (option 2), we could parse\nconfigs and if there are multiple contexts inside we will suggest you to add multiple clusters to the app.\nFew examples of yaml files we expect to have you could find [there](https:\u002F\u002Fgithub.com\u002Fpixel-point\u002Fkube-forwarder\u002Fissues\u002F7)\n\nAlso, you could add a cluster by filling a form manually (option 3). The form has the following fields:\n* Name - the name of a cluster withing Kube Forwarder app.\n* Storing method (Set destination to your kube config or paste it as a text) - the method of storing a config It has two options:\n    * `Set a path` - storing a path to the config file. It will be read every time when you forwarding a port. It allows\n    a user to don't do any changes in Kube Forwarder's settings when a third-party app updates the config file.\n    For example, when `azure-cli` updates an access token (#13).\n    * `Paste as a text` - storing a config just as a yml text.\n* Path (if storing method is `Set a path`) - the path to a config file.\n* Content (if storing method is `Paste as a text`) - Yml config as a text.\n* Current Context (if storing method is `Set a path`) - When you use `Set a path`, you must select a context from a file\nwhich will be used to connect to a resource. Let's see an example of a problem that the field solves.\n    1) Let's say we don't have `Current context` field.\n    1) A user has a config file with two contexts: `local-cluster` and `remote-cluster`.\n    `current-context` in the yml file is `local-cluster`.\n    1) The user configured a cluster in Kube Forwarder with `Set a path` option.\n    1) The user created a resource `postgres` and successfully forwarded ports for some time.\n    1) Then the user executed `kubectl config use-context remote-cluster`\n    1) If the user tries to forward the resource in Kube Forwarder again, most likely there will be an error\n    since a connection will be established with `remote-cluster`, not `local-cluster` as the user expected,\n    and `remote-cluster` couldn't have `postgres` resource.\n\n    So, to avoid the error we should store the current context in a separate field.\n\n\u003Ca target=\"_blank\" href=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F2697570\u002F60754775-58a4ca80-9fe6-11e9-8d67-d15a1423b506.png\">\u003Cimg width=\"320\" alt=\"Screenshot 2019-07-06 at 12 04 45\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F2697570\u002F60754775-58a4ca80-9fe6-11e9-8d67-d15a1423b506.png\">\u003C\u002Fa>\n\n### Add a resource\n\nKube Forwarder supports forwarding of all types of resources that supported by `kubectl` – Pod, Deployment, Service.\n\nWe ask you to fill the form with the following fields:\n\n**Cluster Name** - pick a cluster from one of the added clusters.\n\n**Namespace** - the namespace of the resource you plan to forward.\n\n**Kind** – pick one of the options Pod, Deployment or Service.\n\n**Name** - name of the Pod, Deployment or Service.\n\n**Alias** - alternative name of the resource that will be displayed on the homepage(optional)\n\n**Port Forwarding**\n\n- **Local port** - port from your local machine where the resource will be forwarded.  Note that ports \u003C= 1024 are\n  restricted to user `root`\n- **Resource port** - port of the resource from the Kubernetes cluster\n\n**Use Custom Local Address** - Check this and put an IP address or hostname into the text field to\nuse a different listen address. Putting each service on its own address avoids sharing\u002Fcollisions between\nservices on cookies and port number.  Specify a loopback address like `127.0.x.x` or add entries to your\nhosts file like `127.0.1.1 dashboard.production.kbf` and put the assigned name in this column.  If blank or\nunchecked, `localhost` \u002F `127.0.0.1` will be used.\n\n\u003Ca target=\"_blank\" href=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F2697570\u002F60754738-e207cd00-9fe5-11e9-95b3-8f4704ca3dce.png\">\u003Cimg width=\"320\" alt=\"Port Forwarding Form\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F2697570\u002F60754738-e207cd00-9fe5-11e9-95b3-8f4704ca3dce.png\">\u003C\u002Fa>\n\n### Import\u002FExport\n\nKube Forwarder allows you export cluster configuration in JSON that you could use to share with your team members or for the backup purpose. You could easily store it on Github. When you export cluster, you could export it with or without confidential information.\n\n\u003Ca target=\"_blank\" href=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F2697570\u002F60754844-54c57800-9fe7-11e9-9de0-fe77fc6b4290.png\">\u003Cimg width=\"320\" alt=\"Screenshot 2019-07-06 at 12 12 20\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F2697570\u002F60754844-54c57800-9fe7-11e9-9de0-fe77fc6b4290.png\">\u003C\u002Fa>\n\n### Install with Homebrew\n\n```\nbrew cask install kube-forwarder\n```\n\n## Contributing\n\nWe encourage you to contribute to Kube Forwarder!\n\nWe expect contributors to abide by our underlying [code of conduct](.\u002F.github\u002FCODE_OF_CONDUCT.md).\nAll conversations and discussions on GitHub (issues, pull requests)\nmust be respectful and harassment-free.\n\nThis project was generated with [electron-vue](https:\u002F\u002Fgithub.com\u002FSimulatedGREG\u002Felectron-vue)@[8fae476](https:\u002F\u002Fgithub.com\u002FSimulatedGREG\u002Felectron-vue\u002Ftree\u002F8fae4763e9d225d3691b627e83b9e09b56f6c935) using [vue-cli](https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fvue-cli). Documentation about the original structure can be found [here](https:\u002F\u002Fsimulatedgreg.gitbooks.io\u002Felectron-vue\u002Fcontent\u002Findex.html).\n\n### How to contribute\n\n1.  Fork the project & clone locally. Follow the initial setup [here](#getting-started).\n2.  Create a branch, naming it either a feature or bug: `git checkout -b feature\u002Fthat-new-feature` or `bug\u002Ffixing-that-bug`\n3.  Code and commit your changes. Bonus points if you write a [good commit message](https:\u002F\u002Fchris.beams.io\u002Fposts\u002Fgit-commit\u002F): `git commit -m 'Add some feature'`\n4.  Push to the branch: `git push origin feature\u002Fthat-new-feature`\n5.  Create a pull request for your branch 🎉\n\n## Getting started\n\n### Prerequisites\n\n* Node 10.8+\n* MacOS (if you want to build `.dmg` target)\n* Docker (if you want to run tests)\n* ImageMagick (to build app icon)\n\n### Installing\n\nFork Kube Forwarder repository (https:\u002F\u002Fgithub.com\u002Fpixel-point\u002Fkube-forwarder\u002Ffork)\n\n```\n# Clone source code\ngit clone https:\u002F\u002Fgithub.com\u002F\u003Cyour-username>\u002Fkube-forwarder\n\n# install dependencies\nnpm install\n\n# prepare .env files\ncp .env.example .env\ncp .env.example .env.production\n\n# serve with hot reload in Electron Dev app\nnpm run dev\n\n# serve WEB version with hot reload at localhost:9081\nnpm run web\n```\n\n### Build\n\nBuild an application for production\n```\n# Build a target for current OS\nnpm run build\n\n# Build a target for Windows\nnpm run build -- -- --win\n\n# Build a target for Linux\nnpm run build -- -- --linux\n\n# You can mix targets\nnpm run build -- -- --win --linux\n\n# You can build static and target separately\nnpm run build:dist\nnpm run build:target -- --win\n```\n\nA built version will be appear in `build` directory.\n\n## Running the tests\n\nWe are using [Cypress](https:\u002F\u002Fwww.cypress.io) to run integration tests.\nThere are visual regression tests. It's important to run them inside docker\ncontainer to get same screenshots as in Drone CI.\n\n```\nnpm run test:cypress\n```\n\nOr you can run it manually on a local machine.\n```\n# Run the web version to test it\nnpm run web\n\n# Run this command in a separate terminal tab\nnpm run test:cypress:onhost\n\n# Or you can open Cypress GUI\nnpm run test:cypress:open\n```\n\n## Troubleshooting\n\nQ) Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 12.x\nA) `npm rebuild node-sass`\n\nQ) Error: spawn ...\u002Fkube-forwarder\u002Fnode_modules\u002Felectron\u002Fdist\u002FElectron.app\u002FContents\u002FMacOS\u002FElectron ENOENT\nA) Reinstall node_modules: `rm -rf node_modules && npm i`\n\n## Release guide\n\n### Configure environment\n\nAlso, this steps could be used to configure CI environment.\n\n1) Copy `.env.example` to `.env.production` and fill variables.\n\n### Release steps\n\n1) Update the version in `package.json` and Push to `release` branch.\n1) Run `npm run release` on a Mac computer to build packages.  They will be automatically pushed to releases at Github.\n1) Go to [Releases](https:\u002F\u002Fgithub.com\u002Fpixel-point\u002Fkube-forwarder\u002Freleases) in the repository.\nMake sure that the created draft is OK and release it (Edit -> Release).\n1) Run `cask-repair kube-forwarder` to update the cask version.\n([https:\u002F\u002Fgithub.com\u002FHomebrew\u002Fhomebrew-cask\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md#updating-a-cask](About cask-repair))\n\nNotes:\n1) A release tag (for example: `v1.0.3`) will be added to GIT automatically by Github when you release your draft.\n\n## Development tips\n\nUse `tiffutil -cathidpicheck bg.png bg@2x.png -out bg.tiff` to build a tiff\nbackground for .DMG\n\n## Supported by\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctd valign=\"middle\">\n\u003Ca href=\"https:\u002F\u002Fwww.browserstack.com\">\u003Cimg width=\"200px\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F2697570\u002F60770117-f0361600-a0d7-11e9-8a1e-39393f4d0439.png\" \u002F>\u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd valign=\"middle\">\u003Ca href=\"https:\u002F\u002Fsentry.io\u002F\">\u003Cimg width=\"200px\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F2697570\u002F60827162-dd8f1000-a1af-11e9-9536-0bba6c71778c.png\"\u002F>\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE.md file for details\n","Kube Forwarder 是一个易于使用的 Kubernetes 端口转发管理工具。它支持自动重连、多集群管理和书签共享等功能，用户无需安装 kubectl 即可使用端口转发，极大地简化了操作流程。该工具基于 Vue 和 Electron 开发，界面友好且跨平台（支持 macOS、Windows 和 Linux）。对于需要频繁访问 Kubernetes 集群内部服务的开发者或运维人员来说，Kube Forwarder 提供了一个高效便捷的解决方案，特别适用于 DevOps 场景下的日常开发和调试工作。","2026-06-11 03:20:45","top_language"]