{"id":20464802,"url":"https://github.com/envoyproxy/playground","last_synced_at":"2025-04-13T08:42:51.361Z","repository":{"id":55567125,"uuid":"312909532","full_name":"envoyproxy/playground","owner":"envoyproxy","description":"Playing nice with the neighbours","archived":false,"fork":false,"pushed_at":"2022-01-29T02:16:17.000Z","size":11261,"stargazers_count":8,"open_issues_count":33,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-27T00:22:05.090Z","etag":null,"topics":["dogs","dogs-over-cats","dogs-over-leprechauns","dogs-over-robots","leprechauns-over-snakes","snakes-over-dogs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/envoyproxy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-11-14T22:00:27.000Z","updated_at":"2024-04-22T16:14:52.000Z","dependencies_parsed_at":"2022-08-15T03:20:32.432Z","dependency_job_id":null,"html_url":"https://github.com/envoyproxy/playground","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envoyproxy%2Fplayground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envoyproxy%2Fplayground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envoyproxy%2Fplayground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envoyproxy%2Fplayground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/envoyproxy","download_url":"https://codeload.github.com/envoyproxy/playground/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248687542,"owners_count":21145733,"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":["dogs","dogs-over-cats","dogs-over-leprechauns","dogs-over-robots","leprechauns-over-snakes","snakes-over-dogs"],"created_at":"2024-11-15T13:16:30.305Z","updated_at":"2025-04-13T08:42:51.342Z","avatar_url":"https://github.com/envoyproxy.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Envoy playground\n\n[![codecov](https://codecov.io/gh/envoyproxy/playground/branch/main/graph/badge.svg)](https://codecov.io/gh/envoyproxy/playground)\n\nThe Envoy playground allows you to experiment with proxies, services and networks using Docker.\n\nThis is useful for learning or testing Envoy configurations and network architectures.\n\nIt is not (at least with current focus) intended to be exposed on the internet or other network.\n\nExposing the playground to the internet could create an open proxy and allow unknown users to run playground\ndatabases and services.\n\n## Install\n\n---\n\u003e :smiley: **The playground is currently in alpha development.**\n\u003e\n\u003e It should mostly work and do no harm, but may have bugs\n\u003e\n\u003e Contributions/issues are welcome.\n---\n\n### Requirements\n\nYou will need a recent version of Docker installed and runnable by the user running the playground.\n\nVersion 19.0.3 is well tested.\n\n### Run with Docker\n\nYou can run the playground directly with Docker.\n\n---\n\u003e :warning: The playground container must be run in privileged mode\n\u003e and with access to the Docker socket.\n\u003e\n\u003e It requires these permissions in order to start and stop proxy\n\u003e and service containers, and attach their networks.\n---\n\n```console\n$ docker run -d --rm \\\n\t--privileged \\\n\t-v /var/run/docker.sock:/var/run/docker.sock \\\n\tphlax/envoy-playground:0.3.2\n```\n\nYou can stop the playground with.\n\n```console\n$ docker stop envoy-playground\n```\n\n---\n\u003e :bulb: This will not stop any services, proxies or networks that you started with the playground.\n---\n\n## Usage\n\nStart the container and browse to http://localhost:8000\n\n### Create Envoy proxies\n\nAdd Envoy proxies and set their configuration.\n\nhttps://phlax.github.io/playground/docs/screencasts/create-proxies.webm\n\n### Create some services\n\nAdd some services to the playground.\n\n### Create some networks and connect services and proxies\n\nConnect the proxies and services with networks.\n\n### Test edge connections\n\nTest out connectivity of ports that are exposed to your (localhost) edges.\n\n### Remove proxies, services and networks\n\nRemove an Envoy proxy, service or network from  the playground.\n\n### Clear the deck\n\nClear all of the toys away.\n\n## Development\n\n### Clone the git repo\n\n```console\n$ git clone git@github.com:envoyproxy/playground\n$ cd playground\n```\n\n### Start the control and ui servers in dev mode\n\nTo start the control server (python API and websocket).\n\n```\n$ make dev-control\n```\n\nTo start the ui (webpack-dev-server)\n\n\n```\n$ make dev-ui\n```\n\nIn dev mode the playground should be available at http://localhost:5555\n\nYou can optionally also start continuous javascript testing.\n\n```\n$ make dev-ui-test\n```\n\n### Run tests\n\n```\n$ make test\n```\n\n### Build the playground image\n\nThis will generate a production image named `envoy-playground`.\n\n```console\n$ make build\n```\n\n### Run the built image\n\nThis will run the built production `envoy-playground` image.\n\nThe playground will be available on http://localhost:8000.\n\n```\n$ make run\n```\n\nSee the [Makefile](Makefile) for further commands, and other usage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenvoyproxy%2Fplayground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenvoyproxy%2Fplayground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenvoyproxy%2Fplayground/lists"}