{"id":21407311,"url":"https://github.com/sj14/ip-auth","last_synced_at":"2025-04-16T14:35:29.751Z","repository":{"id":262123566,"uuid":"864790989","full_name":"sj14/ip-auth","owner":"sj14","description":"🔒 reverse proxy which authorizes client IP addresses","archived":false,"fork":false,"pushed_at":"2025-04-07T10:43:23.000Z","size":59,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T17:48:27.941Z","etag":null,"topics":["auth","authorization","basic-auth","ip","proxy","reverse-proxy"],"latest_commit_sha":null,"homepage":"","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/sj14.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-09-29T07:04:05.000Z","updated_at":"2025-04-07T10:43:26.000Z","dependencies_parsed_at":"2025-01-19T11:28:44.367Z","dependency_job_id":null,"html_url":"https://github.com/sj14/ip-auth","commit_stats":null,"previous_names":["sj14/ip-auth","sj14/basic-ip-auth"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sj14%2Fip-auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sj14%2Fip-auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sj14%2Fip-auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sj14%2Fip-auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sj14","download_url":"https://codeload.github.com/sj14/ip-auth/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249250867,"owners_count":21237961,"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":["auth","authorization","basic-auth","ip","proxy","reverse-proxy"],"created_at":"2024-11-22T16:51:09.044Z","updated_at":"2025-04-16T14:35:29.733Z","avatar_url":"https://github.com/sj14.png","language":"Go","readme":"# IP Auth\n\nThere are circumstances where properly setup Basic Auth won't work [[1]](https://github.com/jellyfin/jellyfin-android/issues/123).\nIP Auth is a workaround by allowing specific IPs access to the service and proxying the traffic to the original service. Allowed IPs can be specified or dynamically added by passing a Basic Auth login *once* from *any* device on the same IP. Everything is stored in memory and will be lost on restarts.\n\n## Installation\n\n### Binaries\n\nBinaries are available for all major platforms. See the [releases](https://github.com/sj14/ip-auth/releases) page.\n\n### Container\n\n```bash\n# do not use the 'main' tag and specify a version or hash instead!\ndocker pull ghcr.io/sj14/ip-auth:main\n```\n\nAdd the container as a sidecar and point your endpoints to it.\n\n### Homebrew\n\nUsing the [Homebrew](https://brew.sh/) package manager for macOS:\n\n``` text\nbrew install sj14/tap/ip-auth\n```\n\n### Go\n\nIt's also possible to install via `go install`:\n\n```console\ngo install github.com/sj14/ip-auth@latest\n```\n\n## Usage\n\n```text\n  -allow-cidr string\n        allow the given CIDR (e.g. 10.0.0.0/8,192.168.0.0/16)\n  -allow-hosts string\n        allow the given host IPs (e.g. example.com)\n  -ban-duration duration\n        cleanup bans and failed login attempts (0 to disable) (default 1h0m0s)\n  -basic-auth-duration duration\n        Cleanup Basic Auth authentications (0 to disable) (default 1h0m0s)\n  -deny-cidr string\n        block the given CIDR (e.g. 10.0.0.0/8,192.168.0.0/16)\n  -deny-private\n        deny IPs from the private network space\n  -host-ip-renewal duration\n        Renew host IPs (default 1h0m0s)\n  -ip-header string\n        e.g. 'X-Real-Ip' or 'X-Forwarded-For' when you want to extract the IP from the given header\n  -listen string\n        listen for connections (default \":8080\")\n  -max-attempts int\n        ban IP after max failed auth attempts (0 to disable) (default 10)\n  -network string\n        tcp, tcp4, tcp6, unix, unixpacket (default \"tcp\")\n  -status-path string\n        show info for the requesting IP (default \"/ip-auth\")\n  -target string\n        proxy to the given target\n  -users string\n        allow the given basic auth credentals (e.g. user1:pass1,user2:pass2)\n  -verbosity string\n        one of 'Debug', 'Info', 'Warn', or 'Error' (default \"Info\")\n```\n\nAll options can also be set as environment variables by using their uppercase flag names and changing dashes (-) with underscores (_).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsj14%2Fip-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsj14%2Fip-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsj14%2Fip-auth/lists"}