{"id":17856829,"url":"https://github.com/xddxdd/bird-lg-go","last_synced_at":"2026-01-19T21:01:01.461Z","repository":{"id":40993242,"uuid":"164467597","full_name":"xddxdd/bird-lg-go","owner":"xddxdd","description":"BIRD looking glass in Go, for better maintainability, easier deployment \u0026 smaller memory footprint","archived":false,"fork":false,"pushed_at":"2026-01-11T19:39:02.000Z","size":1164,"stargazers_count":179,"open_issues_count":2,"forks_count":37,"subscribers_count":6,"default_branch":"master","last_synced_at":"2026-01-11T22:19:02.198Z","etag":null,"topics":["bird","docker-container","traceroute"],"latest_commit_sha":null,"homepage":"","language":"Go","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/xddxdd.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-01-07T17:32:13.000Z","updated_at":"2026-01-11T19:38:54.000Z","dependencies_parsed_at":"2024-12-22T11:07:38.624Z","dependency_job_id":"523da9f8-bd3e-4e85-a6df-a6b165ea4104","html_url":"https://github.com/xddxdd/bird-lg-go","commit_stats":{"total_commits":248,"total_committers":24,"mean_commits":"10.333333333333334","dds":"0.22983870967741937","last_synced_commit":"0fdde8afc7a63cc7e1d928b024ac8e2256e1fa74"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/xddxdd/bird-lg-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xddxdd%2Fbird-lg-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xddxdd%2Fbird-lg-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xddxdd%2Fbird-lg-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xddxdd%2Fbird-lg-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xddxdd","download_url":"https://codeload.github.com/xddxdd/bird-lg-go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xddxdd%2Fbird-lg-go/sbom","scorecard":{"id":1237291,"data":{"date":"2025-07-07","repo":{"name":"github.com/xddxdd/bird-lg-go","commit":"e9750a827856b9e3156a0b066876b4af868ea51e"},"scorecard":{"version":"v5.2.1-18-gbb9c347d","commit":"bb9c347dff6349d986baab6578a46d68a5524c62"},"score":4.7,"checks":[{"name":"Maintained","score":9,"reason":"9 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":1,"reason":"Found 2/12 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/auto-merge.yml:1","Warn: no topLevel permission defined: .github/workflows/develop.yaml:1","Warn: no topLevel permission defined: .github/workflows/release.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.3.10 not signed: https://api.github.com/repos/xddxdd/bird-lg-go/releases/229591342","Warn: release artifact v1.3.9 not signed: https://api.github.com/repos/xddxdd/bird-lg-go/releases/214401664","Warn: release artifact v1.3.8 not signed: https://api.github.com/repos/xddxdd/bird-lg-go/releases/163478638","Warn: release artifact v1.3.7.1 not signed: https://api.github.com/repos/xddxdd/bird-lg-go/releases/146171808","Warn: release artifact v1.3.7 not signed: https://api.github.com/repos/xddxdd/bird-lg-go/releases/146169796","Warn: release artifact v1.3.10 does not have provenance: https://api.github.com/repos/xddxdd/bird-lg-go/releases/229591342","Warn: release artifact v1.3.9 does not have provenance: https://api.github.com/repos/xddxdd/bird-lg-go/releases/214401664","Warn: release artifact v1.3.8 does not have provenance: https://api.github.com/repos/xddxdd/bird-lg-go/releases/163478638","Warn: release artifact v1.3.7.1 does not have provenance: https://api.github.com/repos/xddxdd/bird-lg-go/releases/146171808","Warn: release artifact v1.3.7 does not have provenance: https://api.github.com/repos/xddxdd/bird-lg-go/releases/146169796"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/develop.yaml:66"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-merge.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/auto-merge.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-merge.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/auto-merge.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/develop.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/develop.yaml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/develop.yaml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/develop.yaml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/develop.yaml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/develop.yaml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/develop.yaml:86: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/develop.yaml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/develop.yaml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/develop.yaml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/develop.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/develop.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/develop.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:78: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/xddxdd/bird-lg-go/release.yaml/master?enable=pin","Warn: containerImage not pinned by hash: frontend/Dockerfile:1","Warn: containerImage not pinned by hash: frontend/Dockerfile:9","Warn: containerImage not pinned by hash: proxy/Dockerfile:1","Warn: containerImage not pinned by hash: proxy/Dockerfile:10","Warn: containerImage not pinned by hash: proxy/Dockerfile.mtr:1","Warn: containerImage not pinned by hash: proxy/Dockerfile.mtr:10","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  19 third-party GitHubAction dependencies pinned","Info:   0 out of   6 containerImage dependencies pinned","Info:   2 out of   2 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-09-09T02:31:46.084Z","repository_id":40993242,"created_at":"2025-09-09T02:31:46.084Z","updated_at":"2025-09-09T02:31:46.084Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28585190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T20:45:59.482Z","status":"ssl_error","status_checked_at":"2026-01-19T20:45:41.500Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bird","docker-container","traceroute"],"created_at":"2024-10-28T03:09:36.106Z","updated_at":"2026-01-19T21:01:01.420Z","avatar_url":"https://github.com/xddxdd.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bird-lg-go\n\nAn alternative implementation for [bird-lg](https://github.com/sileht/bird-lg) written in Go. Both frontend and backend (proxy) are implemented, and can work with either the original Python implementation or the Go implementation.\n\n\u003e The code on master branch no longer support BIRDv1. Branch \"bird1\" is the last version that supports BIRDv1.\n\n## Table of Contents\n\n- [Bird-lg-go](#bird-lg-go)\n  - [Table of Contents](#table-of-contents)\n  - [Build Instructions](#build-instructions)\n    - [Build Docker Images](#build-docker-images)\n  - [Frontend](#frontend)\n  - [Proxy](#proxy)\n  - [Advanced Features](#advanced-features)\n    - [Display names](#display-names)\n    - [IP addresses](#ip-addresses)\n    - [API](#api)\n    - [Telegram Bot Webhook](#telegram-bot-webhook)\n  - [Credits](#credits)\n  - [License](#license)\n\n## Build Instructions\n\nYou need to have **Go 1.16 or newer** installed on your machine.\n\nRun `make` to build binaries for both the frontend and the proxy.\n\nOptionally run `make install` to install them to `/usr/local/bin` (`bird-lg-go` and `bird-lgproxy-go`).\n\n### Build Docker Images\n\nUse the Dockerfiles in `frontend` and `proxy` directory.\n\nReady-to-use images are available at:\n\n- Frontend: \u003chttps://hub.docker.com/r/xddxdd/bird-lg-go\u003e\n- Proxy: \u003chttps://hub.docker.com/r/xddxdd/bird-lgproxy-go\u003e\n\n## Frontend\n\nThe frontend directory contains the code for the web frontend, where users see BGP states, do traceroutes and whois, etc. It's a replacement for \"lg.py\" in original bird-lg project.\n\nFeatures implemented:\n\n- Show peering status (`show protocol` command)\n- Query route (`show route for ...`, `show route where net ~ [ ... ]`)\n- Whois and traceroute\n- Work with both Python proxy (lgproxy.py) and Go proxy (proxy dir of this project)\n- Visualize AS paths as picture (bgpmap feature)\n\nConfiguration can be set in:\n\n- `bird-lg.[json/yaml/etc]` in current directory\n- `/etc/bird-lg/bird-lg.[json/yaml/etc]`\n- Commandline parameter\n- Environment variables\n\nConfiguration is handled by [viper](https://github.com/spf13/viper), any config format supported by it can be used.\n\n| Config Key | Parameter | Environment Variable | Description |\n| ---------- | --------- | -------------------- | ----------- |\n| servers | --servers | BIRDLG_SERVERS | server name prefixes, separated by comma |\n| domain | --domain | BIRDLG_DOMAIN | server name domain suffixes |\n| listen | --listen | BIRDLG_LISTEN | address bird-lg is listening on (default \"5000\") |\n| proxy_port | --proxy-port | BIRDLG_PROXY_PORT | port bird-lgproxy is running on (default 8000) |\n| whois | --whois | BIRDLG_WHOIS | whois server for queries (default \"whois.verisign-grs.com\"). Start with \"/\" to spacify local whois binary(\"/usr/local/whois\"). |\n| dns_interface | --dns-interface | BIRDLG_DNS_INTERFACE | dns zone to query ASN information (default \"asn.cymru.com\") |\n| bgpmap_info | --bgpmap-info | BIRDLG_BGPMAP_INFO | the infos displayed in bgpmap, separated by comma, start with `:` means allow multiline (default \"asn,as-name,ASName,descr\") |\n| title_brand | --title-brand | BIRDLG_TITLE_BRAND | prefix of page titles in browser tabs (default \"Bird-lg Go\") |\n| navbar_brand | --navbar-brand | BIRDLG_NAVBAR_BRAND | brand to show in the navigation bar (default \"Bird-lg Go\") |\n| navbar_brand_url | --navbar-brand-url | BIRDLG_NAVBAR_BRAND_URL | the url of the brand to show in the navigation bar (default \"/\") |\n| navbar_all_servers | --navbar-all-servers | BIRDLG_NAVBAR_ALL_SERVERS | the text of \"All servers\" button in the navigation bar (default \"ALL Servers\") |\n| navbar_all_url | --navbar-all-url | BIRDLG_NAVBAR_ALL_URL | the URL of \"All servers\" button (default \"all\") |\n| net_specific_mode | --net-specific-mode | BIRDLG_NET_SPECIFIC_MODE | apply network-specific changes for some networks, use \"dn42\" for BIRD in dn42 network |\n| protocol_filter | --protocol-filter | BIRDLG_PROTOCOL_FILTER | protocol types to show in summary tables (comma separated list); defaults to all if not set |\n| name_filter | --name-filter | BIRDLG_NAME_FILTER | protocol names to hide in summary tables (RE2 syntax); defaults to none if not set |\n| timeout | --time-out | BIRDLG_TIMEOUT | time before request timed out, in seconds; defaults to 120 if not set |\n\n### Examples\n\nExample: the following command starts the frontend with 2 BIRD nodes, with domain name \"gigsgigscloud.dn42.lantian.pub\" and \"hostdare.dn42.lantian.pub\", and proxies are running on port 8000 on both nodes.\n\n```bash\n./frontend --servers=gigsgigscloud,hostdare --domain=dn42.lantian.pub --proxy-port=8000\n```\n\nExample: the following docker-compose.yml entry does the same as above, but by starting a Docker container:\n\n```yaml\nservices:\n  bird-lg:\n    # Use xddxdd/bird-lg-go:develop for the latest build from master branch\n    image: xddxdd/bird-lg-go:latest\n    container_name: bird-lg\n    restart: always\n    environment:\n      - BIRDLG_SERVERS=gigsgigscloud,hostdare\n      - BIRDLG_DOMAIN=dn42.lantian.pub\n    ports:\n      - \"5000:5000\"\n```\n\nDemo: \u003chttps://lg.lantian.pub\u003e\n\n## Proxy\n\nThe proxy directory contains the code for the \"proxy\" for bird commands and traceroutes. It's a replacement for \"lgproxy.py\" in original bird-lg project.\n\nFeatures implemented:\n\n- Sending queries to BIRD\n- Sending \"restrict\" command to BIRD to prevent unauthorized changes\n- Executing traceroute command on Linux, FreeBSD and OpenBSD\n- Source IP restriction\n\nConfiguration can be set in:\n\n- `bird-lgproxy.[json/yaml/etc]` in current directory\n- `/etc/bird-lg/bird-lgproxy.[json/yaml/etc]`\n- Commandline parameter\n- Environment variables\n\nConfiguration is handled by [viper](https://github.com/spf13/viper), any config format supported by it can be used.\n\n| Config Key | Parameter | Environment Variable | Description |\n| ---------- | --------- | -------------------- | ----------- |\n| allowed_ips | --allowed | ALLOWED_IPS | IPs or networks allowed to access this proxy, separated by commas. Don't set to allow all IPs. (default \"\") |\n| bird_socket | --bird | BIRD_SOCKET | socket file for bird, set either in parameter or environment variable BIRD_SOCKET (default \"/var/run/bird/bird.ctl\") |\n| listen | --listen | BIRDLG_PROXY_PORT | listen address, set either in parameter or environment variable  BIRDLG_PROXY_PORT(default \"8000\") |\n| traceroute_bin | --traceroute_bin | BIRDLG_TRACEROUTE_BIN | traceroute binary file, set either in parameter or environment variable  BIRDLG_TRACEROUTE_BIN |\n| traceroute_flags | --traceroute_flags | BIRDLG_TRACEROUTE_FLAGS | traceroute flags, supports multiple flags separated with space. |\n| traceroute_raw | --traceroute_raw | BIRDLG_TRACEROUTE_RAW | whether to display traceroute outputs raw (default false) |\n\n### Traceroute Binary Autodetection\n\nIf `traceroute_bin` or `traceroute_flags` is not set, then on startup, the proxy will try to `traceroute 127.0.0.1` with different traceroute binaries and arguments, in order to use the most optimized setting available, while maintaining compatibility with multiple variants of traceroute binaries.\n\nTraceroute binaries will be autodetected in the following order:\n\n1. If `traceroute_bin` is set:\n   1. `[traceroute_bin] -q1 -N32 -w1 127.0.0.1` (Corresponds to Traceroute on Debian)\n   2. `[traceroute_bin] -q1 -w1 127.0.0.1` (Corresponds to Traceroute on FreeBSD)\n   3. `[traceroute_bin] 127.0.0.1` (Corresponds to Busybox Traceroute)\n2. `mtr -w -c1 -Z1 -G1 -b 127.0.0.1` (MTR)\n3. `traceroute -q1 -N32 -w1 127.0.0.1` (Corresponds to Traceroute on Debian)\n4. `traceroute -q1 -w1 127.0.0.1` (Corresponds to Traceroute on FreeBSD)\n5. `traceroute 127.0.0.1` (Corresponds to Busybox Traceroute)\n\n### Examples\n\nExample: start proxy with default configuration, should work \"out of the box\" on Debian 9 with BIRDv1:\n\n```bash\n./proxy\n```\n\nExample: start proxy with custom bird socket location:\n\n```bash\n./proxy --bird /run/bird.ctl\n```\n\nExample: the following docker-compose.yml entry does the same as above, but by starting a Docker container:\n\n```yaml\nservices:\n  bird-lgproxy:\n    # Use xddxdd/bird-lgproxy-go:develop for the latest build from master branch\n    # Use xddxdd/bird-lgproxy-go:latest-mtr to use MTR instead of Traceroute\n    image: xddxdd/bird-lgproxy-go:latest\n    container_name: bird-lgproxy\n    restart: always\n    volumes:\n      - \"/run/bird.ctl:/var/run/bird/bird.ctl\"\n    ports:\n      - \"192.168.0.1:8000:8000\"\n```\n\nYou can use source IP restriction to increase security. You should also bind the proxy to a specific interface and use an external firewall/iptables for added security.\n\n## Advanced Features\n\n### Display names\n\nThe server parameter is composed of server name prefixes, separated by comma. It also supports an extended syntax: It allows to define display names for the user interface that are different from the actual server names.\n\nFor instance, the two servers from the basic example can be displayed as \"Gigs\" and \"Hostdare\" using the following syntax (as known from email addresses):\n\n```bash\n./frontend --servers=\"Gigs\u003cgigsgigscloud\u003e,Hostdare\u003chostdare\u003e\" --domain=dn42.lantian.pub\n```\n\n### IP addresses\n\nYou may also specify IP addresses as server names when no domain is specified. IPv6 link local addresses are supported, too.\n\nFor example:\n\n```bash\n./frontend --servers=\"Prod\u003cprod.mydomain.local\u003e,Test1\u003cfd88:dead:beef::1\u003e,Test2\u003cfe80::c%wg0\u003e\" --domain=\n```\n\nThese three servers are displayed as \"Prod\", \"Test1\" and \"Test2\" in the user interface.\n\n### API\n\nThe frontend provides an API for running BIRD/traceroute/whois queries.\n\nSee [API docs](docs/API.md) for detailed information.\n\n### Telegram Bot Webhook\n\nThe frontend can act as a Telegram Bot webhook endpoint, to add BGP route/traceroute/whois lookup functionality to your tech group.\n\nSee [Telegram docs](docs/Telegram.md) for detailed information.\n\n## Credits\n\n- Everyone who contributed to this project (see Contributors section on the right)\n- Mehdi Abaakouk for creating [the original bird-lg project](https://github.com/sileht/bird-lg)\n- [Bootstrap](https://getbootstrap.com/) as web UI framework\n\n## License\n\nGPL 3.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxddxdd%2Fbird-lg-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxddxdd%2Fbird-lg-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxddxdd%2Fbird-lg-go/lists"}