{"id":13580010,"url":"https://github.com/rhicks/bgp-dashboard","last_synced_at":"2025-04-06T00:30:37.303Z","repository":{"id":51131686,"uuid":"74616183","full_name":"rhicks/bgp-dashboard","owner":"rhicks","description":"BGP Dashboard and Monitoring Web Application","archived":false,"fork":false,"pushed_at":"2024-06-29T04:10:16.000Z","size":13964,"stargazers_count":364,"open_issues_count":11,"forks_count":76,"subscribers_count":28,"default_branch":"master","last_synced_at":"2024-11-05T18:51:26.390Z","etag":null,"topics":["bgp","bgp-dashboard","bgp-monitoring-protocol","docker","docker-compose","flask","gobgp","ipv4","ipv6","looking-glass","mongodb","peer"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhicks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-11-23T21:43:20.000Z","updated_at":"2024-11-02T09:26:10.000Z","dependencies_parsed_at":"2024-08-01T15:31:32.621Z","dependency_job_id":null,"html_url":"https://github.com/rhicks/bgp-dashboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhicks%2Fbgp-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhicks%2Fbgp-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhicks%2Fbgp-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhicks%2Fbgp-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhicks","download_url":"https://codeload.github.com/rhicks/bgp-dashboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419597,"owners_count":20936009,"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":["bgp","bgp-dashboard","bgp-monitoring-protocol","docker","docker-compose","flask","gobgp","ipv4","ipv6","looking-glass","mongodb","peer"],"created_at":"2024-08-01T15:01:46.041Z","updated_at":"2025-04-06T00:30:37.295Z","avatar_url":"https://github.com/rhicks.png","language":"CSS","funding_links":[],"categories":["CSS","Tools"],"sub_categories":["NETCONF"],"readme":"BGP Dashboard\n=============\n\nA \"realtime\" web view of your BGP network\n\n- Who do I peer with?\n- How many routes do I receive from my peers?\n- Who do I use for tranist?\n- What AS path does a prefix take out of my network?\n- How many routes and autonomous systems do I see?\n- BGP Looking Glass (IPv4/IPv6/ASN)\n\n\nHow it works\n---------\n\u003e This is beta code.\n- BGP peering session using GoBGP\n- GoBGP pipes BGP information into MongoDB\n- Flask App queries MongoDB to build website and JSON API\n\n###### This project uses three Docker containers\n- GoBGP ([osrg/gobgp](https://hub.docker.com/r/osrg/gobgp/))\n- MongoDB ([mongo](https://hub.docker.com/_/mongo/))\n- Flask ([docker-flask](https://hub.docker.com/r/p0bailey/docker-flask/))\n\n###### GoBGP\nThe GoBGP container serves two functions:\n- Peer with the \"real\" network\n  - Configure [gobgpd.conf](https://github.com/rhicks/bgp-dash/blob/master/gobgp/gobgpd.conf) to peer with the real network.\n  - Only IPv4-Unicast and IPv6-Unicast supported at this time.\n- Pass BGP updates into BGP\n  - The [gobgp_to_mongo.py](https://github.com/rhicks/bgp-dash/blob/master/gobgp_to_mongo.py) script pipes the JSON updates from GoBGP into the MongoDB container\n\n###### MongoDB\n- Mongo receives JSON updates from the GoBGP container\n- The Flask App queries Mongo for relevant information\n\n###### Flask\n- Flask presents a Dashboard for realtime BGP updates\n- A JSON API is used on the backend to support the frontend and display Looking Glass queries\n\n\nScreenshot\n---------\n![screenshot](bgp-dashboard.png)\n\n\nInstall\n---------\n```\n$ git clone https://github.com/rhicks/bgp-dashboard.git\n$ cd bgp-dashboard\n$ # modify ./gobgp/gobgpd.conf to peer with your network\n$ # modify ./flask/app/constants.py globals to use your ASN and BGP communities\n$ docker-compose build\n$ docker-compose up (watch the log to verify BGP peeering is established)\n```\n\n\nTodo\n---------\n- ???\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhicks%2Fbgp-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhicks%2Fbgp-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhicks%2Fbgp-dashboard/lists"}