{"id":20857093,"url":"https://github.com/flipperdevices/ext-ip-local-port","last_synced_at":"2026-03-14T09:02:28.638Z","repository":{"id":250131673,"uuid":"833500417","full_name":"flipperdevices/ext-ip-local-port","owner":"flipperdevices","description":"Open public access to local ports via ZeroTier network","archived":false,"fork":false,"pushed_at":"2024-07-25T08:44:23.000Z","size":20,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-03-07T08:46:49.333Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flipperdevices.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":"2024-07-25T07:21:44.000Z","updated_at":"2024-11-22T06:36:26.000Z","dependencies_parsed_at":"2024-07-25T11:36:49.389Z","dependency_job_id":null,"html_url":"https://github.com/flipperdevices/ext-ip-local-port","commit_stats":null,"previous_names":["flipperdevices/ext-ip-local-port"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flipperdevices%2Fext-ip-local-port","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flipperdevices%2Fext-ip-local-port/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flipperdevices%2Fext-ip-local-port/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flipperdevices%2Fext-ip-local-port/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flipperdevices","download_url":"https://codeload.github.com/flipperdevices/ext-ip-local-port/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243230060,"owners_count":20257640,"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":[],"created_at":"2024-11-18T04:36:05.140Z","updated_at":"2025-12-24T09:52:58.438Z","avatar_url":"https://github.com/flipperdevices.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ext IP local access\n\n## Description\nThis app can be used for external access local PC http ports\n\n## How to use\n1. Create a ZeroTier network. Probably you wanna restrict an inter-network cross-client access ([docs](https://docs.zerotier.com/faq-rules/#client-isolation))\n2. Setup this app to be a zerotier network gateway:\n    1. Generate identity via:\n    ```bash\n   zerotier-idtool generate gateway.secret gateway.public \n    ```\n    2. Manualy add member with id from public or secret file (id is the same in both files), example\n    ```bash\n    $ zerotier-idtool generate gateway.secret gateway.public\n    gateway.secret written\n    gateway.public written\n    $ cat gateway.public \n    4a7f049cf1:0:a4ee328392ccaf0c22900606aeb20a9cdc76716da70[OMMITED]\n    ```\n    `4a7f049cf1` will be host ID in this case\n    3. Assign an IP address to this host via admin console\n3. Create a config file, example:\n```json\n{\n    \"zerotier_network\": \"ZeroTier network ID\",\n    \"zerotier_public_key\": \"gateway.public output from exaple above\",\n    \"zerotier_private_key\": \"gateway.secret output from exaple above\",\n    \"hostname_base\": \"set a base hostname, eq: 'ext.example.com'\",\n    \"users\": [  # put all users here\n        {\n            \"hostname\": \"prefix to base hostname, eq: 'user1'. It will produce 'user1.ext.example.com' address\",\n            \"ip\": \"user ZeroTier IP address for proxy external traffic to. Eq: 10.10.10.2 for 10.10.10.0/24 net\"\n        }\n    ]\n}\n```\n\n4. Start a container with the app\n```bash\ndocker run \\\n    --name ext-ip \\  # optional\n    -v $(pwd)/config.json:/etc/app/config.json \\\n    --cap-add NET_ADMIN \\\n    --device /dev/net/tun \\\n    flipperdevices/ext-ip-local-port:0.0.1  # this should be a latest release from github\n```\n\nFor Kubernetes use you also need to add capabilities [docs](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)\n\n5. Join a network from clients, also set a coresponding IP's\n\nIn example above URL `user1.ext.example.com` will point to the `10.10.10.2` address.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflipperdevices%2Fext-ip-local-port","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflipperdevices%2Fext-ip-local-port","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflipperdevices%2Fext-ip-local-port/lists"}