{"id":13520232,"url":"https://github.com/gefyrahq/gefyra","last_synced_at":"2025-05-14T14:07:30.677Z","repository":{"id":37720189,"uuid":"429510684","full_name":"gefyrahq/gefyra","owner":"gefyrahq","description":"Blazingly-fast :rocket:, rock-solid, local application development :arrow_right: with Kubernetes.","archived":false,"fork":false,"pushed_at":"2025-05-08T11:45:12.000Z","size":5202,"stargazers_count":727,"open_issues_count":54,"forks_count":29,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-05-08T12:38:22.018Z","etag":null,"topics":["coding","container","containers","developer-tool","development","docker","k8s","kubernetes","python","tunnel"],"latest_commit_sha":null,"homepage":"https://gefyra.dev","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gefyrahq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":"FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":["https://blueshoe.io"]}},"created_at":"2021-11-18T16:57:16.000Z","updated_at":"2025-05-08T11:45:09.000Z","dependencies_parsed_at":"2024-01-13T12:53:13.390Z","dependency_job_id":"b3bb77a1-2b67-4891-be0b-87b97be1a457","html_url":"https://github.com/gefyrahq/gefyra","commit_stats":{"total_commits":1159,"total_committers":16,"mean_commits":72.4375,"dds":"0.46333045729076794","last_synced_commit":"509725af10b31beb6eda94b5af114c9a816fdbb1"},"previous_names":[],"tags_count":80,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gefyrahq%2Fgefyra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gefyrahq%2Fgefyra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gefyrahq%2Fgefyra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gefyrahq%2Fgefyra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gefyrahq","download_url":"https://codeload.github.com/gefyrahq/gefyra/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254159194,"owners_count":22024558,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coding","container","containers","developer-tool","development","docker","k8s","kubernetes","python","tunnel"],"created_at":"2024-08-01T05:02:14.883Z","updated_at":"2025-05-14T14:07:30.640Z","avatar_url":"https://github.com/gefyrahq.png","language":"Python","funding_links":["https://blueshoe.io"],"categories":["Python","Tools and Libraries","docker","python"],"sub_categories":["Development Tools"],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\n\u003c!-- PROJECT SHIELDS --\u003e\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n[![Coverage Information][coveralls-shield]][coveralls-url]\n[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=for-the-badge\u0026logo=discord\u0026logoColor=white)](https://discord.gg/8NTPMVPaKy)\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/gefyrahq/gefyra\"\u003e\n    \u003cimg src=\"https://github.com/gefyrahq/gefyra/raw/main/docs/static/img/logo.png\" alt=\"Gefyra Logo\"/\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eGefyra\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Blazingly-fast, rock-solid, local application development with Kubernetes!\n    \u003cbr /\u003e\n    \u003ca href=\"https://gefyra.dev\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://gefyra.dev/try-it-out/\"\u003eTry it yourself\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/gefyrahq/gefyra/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/gefyrahq/gefyra/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#your-first-bridge\"\u003eYour First Bridge\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#running-gefyra\"\u003eRunning Gefyra\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#cleaning-up\"\u003eCleaning up\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#why-gefyra\"\u003eWhy \"Gefyra\"\u003c/a\u003e\u003c/li\u003e    \n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- QUICK START --\u003e\n## Quick Start\nShort manual on where and how to start. You can find detailed information\n[here (installation)](https://gefyra.dev/installation/) and [here (usage)](https://gefyra.dev/getting-started/).\n\n### Installation\n\n#### CLI\n\nWe offer platform specific installations:\n\u003cdetails\u003e\n  \u003csummary\u003eLinux/MacOS via script/cURL\u003c/summary\u003e\n\n```shell\ncurl -sSL https://raw.githubusercontent.com/gefyrahq/gefyra/main/install.sh | sh -\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eMacOS via Homebrew\u003c/summary\u003e\n\n```shell\nbrew tap gefyrahq/gefyra\nbrew install gefyra\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eWindows (Manual)\u003c/summary\u003e\n\nDownload the latest binary for Windows under [here](https://github.com/gefyrahq/gefyra/releases/). \n\u003c/details\u003e\n\n#### Docker Desktop Extension\n\nWorking with Docker Desktop? We offer an [extension](https://open.docker.com/extensions/marketplace?extensionId=gefyra/docker-desktop-extension) to operate Gefyra through a UI on Docker Desktop.\n\n\n### Your First Bridge\nMake sure Gefyra is installed on your cluster (`gefyra up`). Some details of the installation depend on your Kubernetes' platform.\nCheck out our [docs](https://gefyra.dev) for more details.\n\nBridge a local container into an existing cluster. For a detailed guide please\ncheck out this [article](https://gefyra.dev/getting-started/k3d/#running-gefyra).\n1. Run a local available image with Gefyra:\n```shell\ngefyra run -i \u003cimage_name\u003e -N \u003ccontainer_name\u003e -n default\n```\n2. Create a bridge:\n```shell\ngefyra bridge -N \u003ccontainer_name\u003e -n \u003ck8s_namespace\u003e --target deployment/\u003ck8s_deployment\u003e/\u003ck8s_deployment_container\u003e\n```\nExplanation for placeholders:\n- `container_name` the name of the container you created in the previous step\n- `k8s_namespace` the namespace your target workload runs in\n- `k8s_deployment` the name of your target deployment\n- `k8s_deployment_container` the name of the container within `k8s_deployment`\n- `bridge_name` the name for the bridge being created\n\nAll available `bridge` flags are listed [here](https://gefyra.dev/reference/cli/#bridge).\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About the project\nGefyra gives Kubernetes-(\"cloud-native\")-developers a completely new way of writing and testing their applications. \nGone are the times of custom `docker-compose` setups, Vagrants, custom scripts or other scenarios in order to develop (micro-)services\nfor Kubernetes.  \n\nGefyra offers you to:\n- run services locally on a developer machine\n- operate feature-branches in a production-like Kubernetes environment with all adjacent services\n- write code in the IDE you already love, be fast, be confident\n- leverage all the neat development features, such as debugger, code-hot-reloading, overriding environment variables\n- run high-level integration tests against all dependent services\n- keep peace-of-mind when pushing new code to the integration environment \n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Built with\nGefyra builds on top of the following popular open-source technologies:\n\n### Docker\n[*Docker*](https://docker.io) is currently used in order to manage the local container-based development setup, including the\nhost, networking and container management procedures.\n\n### Wireguard\n[*Wireguard*](https://wireguard.com) is used to establish the connection tunnel between the two ends. It securely encrypts the UDP-based traffic\nand allows to create a _site-to-site_ network for Gefyra. That way, the development setup becomes part of the cluster and containers running locally \nare actually able to reach cluster-based resources, such as databases, other (micro)services and so on.\n\n### CoreDNS\n[*CoreDNS*](https://coredns.io) provides local DNS functionality. It allows resolving resources running within the Kubernetes cluster.\n\n### Nginx\n[*Nginx*](https://www.nginx.com/) is used for all kinds of proxying and reverse-proxying traffic, including the interceptions of already running containers\nin the cluster.\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\nYou can easily try Gefyra yourself following this small example.\n\n### Prerequisites\n1) Follow the [installation](https://gefyra.dev/installation) for your preferred platform.\n\n2) Create a local Kubernetes cluster with `k3d` like so:    \n**\u003c v5** `k3d cluster create mycluster --agents 1 -p 8080:80@agent[0] -p 31820:31820/UDP@agent[0]`  \n**\u003e= v5** `k3d cluster create mycluster --agents 1 -p 8080:80@agent:0 -p 31820:31820/UDP@agent:0`  \nThis creates a Kubernetes cluster that binds port 8080 and 31820 to localhost. `kubectl` context is immediately set to this cluster.\n3) Apply some workload, for example from the testing directory of this repo:  \n`kubectl apply -f testing/workloads/hello.yaml`\nCheck out this workload running under: http://hello.127.0.0.1.nip.io:8080/    \n\n### Running Gefyra\n4) Set up Gefyra with `gefyra up`\n5) Run a local Docker image with Gefyra in order to  make it part of the cluster.  \n  a) Build your Docker image with a local tag, for example from the testing directory:  \n   `cd testing/images/ \u0026\u0026 docker build -f Dockerfile.local . -t pyserver`  \n  b) Execute Gefyra's run command:    \n   `gefyra run -i pyserver -N mypyserver -n default`  \n  c) _Exec_ into the running container and look around. You will find the container to run within your Kubernetes cluster.  \n   `docker exec -it mypyserver bash`  \n   `wget -O- hello-nginx` will print out the website of the cluster service _hello-nginx_ from within the cluster.\n6) Create a bridge in order to intercept the traffic to the cluster application with the one running locally:    \n`gefyra bridge -N mypyserver -n default --target deployment/hello-nginxdemo/hello-nginx --port 80:8000`    \nCheck out the locally running server comes up under: http://hello.127.0.0.1.nip.io:8080/  \n7) List all running _bridges_:  \n`gefyra list --bridges`\n8) _Unbridge_ the local container and reset the cluster to its original state: \n`gefyra unbridge -N mypybridge`\nCheck out the initial response from: http://hello.127.0.0.1.nip.io:8080/  \n\n### Cleaning up\n9) Remove Gefyra's components from the cluster with `gefyra down`\n10) Remove the locally running Kubernetes cluster with `k3d cluster delete mycluster`\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Usage\nCheckout [Gefyra's CLI](https://gefyra.dev/docs/cli) or [Guides](https://gefyra.dev/docs/getting-started-with-gefyra).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Why \"Gefyra\"\n\"Gefyra\" is the Greek word for \"Bridge\" and fits nicely with Kubernetes' nautical theme.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n## License\nDistributed under the Apache License 2.0. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Reporting Bugs\nIf you encounter issues, please create a new issue on GitHub or talk to us on the\n[Unikube Slack channel](https://unikubeworkspace.slack.com/). \nWhen reporting a bug please include the following information:\n\nGefyra version or Git commit that you're running (gefyra version),\ndescription of the bug and logs from the relevant `gefyra` command (if applicable),\nsteps to reproduce the issue, expected behavior.\nIf you're reporting a security vulnerability, please follow the process for reporting security issues.\n\n## Acknowledgments\nGefyra is based on well-crafted open source software. Special credits go to the teams of \n[https://www.linuxserver.io/](https://www.linuxserver.io/) and [https://git.zx2c4.com/wireguard-go/about/](Wireguard(-go)). Please\nbe sure to check out their awesome work.  \nGefyra was heavily inspired by the free part of Telepresence2.  \n\nDoge is excited about that.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Schille/gefyra/raw/main/docs/static/img/doge.jpg\" alt=\"Doge is excited\"/\u003e\n\u003c/p\u003e\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/gefyrahq/gefyra.svg?style=for-the-badge\n[contributors-url]: https://github.com/gefyrahq/gefyra/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/gefyrahq/gefyra.svg?style=for-the-badge\n[forks-url]: https://github.com/gefyrahq/gefyra/network/members\n[stars-shield]: https://img.shields.io/github/stars/gefyrahq/gefyra.svg?style=for-the-badge\n[stars-url]: https://github.com/gefyrahq/gefyra/stargazers\n[issues-shield]: https://img.shields.io/github/issues/gefyrahq/gefyra.svg?style=for-the-badge\n[issues-url]: https://github.com/gefyrahq/gefyra/issues\n[license-shield]: https://img.shields.io/github/license/gefyrahq/gefyra.svg?style=for-the-badge\n[license-url]: https://github.com/gefyrahq/gefyra/blob/master/LICENSE.txt\n[coveralls-shield]: https://img.shields.io/coveralls/github/gefyrahq/gefyra/main?style=for-the-badge\n[coveralls-url]: https://coveralls.io/github/gefyrahq/gefyra\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgefyrahq%2Fgefyra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgefyrahq%2Fgefyra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgefyrahq%2Fgefyra/lists"}