{"id":15007447,"url":"https://github.com/elisescu/tty-proxy","last_synced_at":"2025-10-30T12:31:42.485Z","repository":{"id":52912984,"uuid":"306140508","full_name":"elisescu/tty-proxy","owner":"elisescu","description":"The proxy used by the tty-share command for public facing sessions","archived":false,"fork":false,"pushed_at":"2023-09-16T22:41:24.000Z","size":1140,"stargazers_count":48,"open_issues_count":8,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-09-29T15:43:30.955Z","etag":null,"topics":["linux","osx","terminal","terminal-sharing","unix-terminal"],"latest_commit_sha":null,"homepage":"https://tty-share.com/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elisescu.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-21T20:30:37.000Z","updated_at":"2024-07-02T21:08:54.000Z","dependencies_parsed_at":"2024-06-19T00:15:15.700Z","dependency_job_id":"706bd1e6-4640-487b-b0ea-e93c8e513aa6","html_url":"https://github.com/elisescu/tty-proxy","commit_stats":{"total_commits":10,"total_committers":3,"mean_commits":"3.3333333333333335","dds":0.4,"last_synced_commit":"860eb26a06cb573c3de6324528db2b7884cb6167"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elisescu%2Ftty-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elisescu%2Ftty-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elisescu%2Ftty-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elisescu%2Ftty-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elisescu","download_url":"https://codeload.github.com/elisescu/tty-proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219856290,"owners_count":16556085,"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":["linux","osx","terminal","terminal-sharing","unix-terminal"],"created_at":"2024-09-24T19:10:00.909Z","updated_at":"2025-10-30T12:31:41.837Z","avatar_url":"https://github.com/elisescu.png","language":"Go","readme":"# tty-proxy\n\n[![Build Status](https://travis-ci.com/elisescu/tty-proxy.svg?token=N6UZN7xxNqNmweAn6y5D\u0026branch=master)](https://travis-ci.com/elisescu/tty-proxy)\n\nThis is the public facing service that allows `tty-share` command to create public sessions, in\naddition to local ones.\n\n`tty-proxy` will listen to the address passed by the `--back-address` flag, and any connections to\nthis address from `tty-share` will create a new session (`\u003csession-id\u003e` that will be used to proxy\nany requests from any url path of the form `/s/\u003csession-id\u003e/` back over the corresponding\n`tty-share` connection. See more documentation on the\n[tty-share](https://github.com/elisescu/tty-share) project.\n\n**Note** `tty-proxy` replaces a part of the old `tty-server` which has moved inside the actual\n`tty-share` command itself. Read more\n[here](https://github.com/elisescu/tty-share/wiki/tty-share-V2)\n\n## Building\n\n### Build the gobindata.go file\n\nAll files under `assets/*` are packed to the `gobindata.go` file which will be statically compiled\nwithin the final binary.\n\n```bash\n\tgo get github.com/go-bindata/go-bindata/...\n\tgo-bindata --prefix static -o gobindata.go static/*\n```\n\n### Build the final `tty-proxy` binary\n\n```bash\ngo build\n```\n\n## Docker\n\nThe `tty-proxy` can be built into a docker image as follows:\n\n    docker build -t tty-proxy .\n\nTo run the container, type:p\n\n    docker run \\\n      -p 3456:3456 -p 8080:8080 \\\n      -e URL=http://localhost:8080 \\\n      --cap-drop=all --rm \\\n      tty-proxy\n\nwhere you can replace `URL` by whatever will be the publicly visible URL of the server.\n\nAfter this, clients can be connected as follows:\n\n    tty-share --tty-proxy localhost:3456 --no-tls --public\n\nIn the above command, `:3456` is the default port where `tty-proxy` listens for incoming back\nconnections (i.e. `tty-share` clients), and 5000 is the port of the web interface through which\nremote users can connect. You can override the defaults by specifying a different port mapping on\nthe command line, e.g.  `-p 4567:3456 -p 80:8080` to listen on `4567` and serve on `80`.\n\n## nginx\n\nTake a look at [this snippet](doc/nginx.conf) to see how I configured my nginx installation for TLS termination.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felisescu%2Ftty-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felisescu%2Ftty-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felisescu%2Ftty-proxy/lists"}