{"id":34125419,"url":"https://github.com/freifunk-mwu/fastd-limiter","last_synced_at":"2026-04-25T09:35:40.513Z","repository":{"id":57574115,"uuid":"178466872","full_name":"freifunk-mwu/fastd-limiter","owner":"freifunk-mwu","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-02T13:50:42.000Z","size":3688,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-12-17T09:19:15.108Z","etag":null,"topics":["fastd","fastd-exporter","freifunk","freifunk-mwu","golang","prometheus","redis"],"latest_commit_sha":null,"homepage":null,"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/freifunk-mwu.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":"2019-03-29T19:46:25.000Z","updated_at":"2022-02-16T21:36:04.000Z","dependencies_parsed_at":"2024-04-02T15:02:54.433Z","dependency_job_id":null,"html_url":"https://github.com/freifunk-mwu/fastd-limiter","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/freifunk-mwu/fastd-limiter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk-mwu%2Ffastd-limiter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk-mwu%2Ffastd-limiter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk-mwu%2Ffastd-limiter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk-mwu%2Ffastd-limiter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freifunk-mwu","download_url":"https://codeload.github.com/freifunk-mwu/fastd-limiter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk-mwu%2Ffastd-limiter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32257754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"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":["fastd","fastd-exporter","freifunk","freifunk-mwu","golang","prometheus","redis"],"created_at":"2025-12-14T23:02:18.653Z","updated_at":"2026-04-25T09:35:40.508Z","avatar_url":"https://github.com/freifunk-mwu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fastd-limiter\n\nWe are building a peer limiter for the\n[fastd](https://projects.universe-factory.net/projects/fastd/wiki) vpn daemon.\n\n## Getting Started\n\n### Requirements\n\n* [Redis](https://redis.io/)\n* [fastd-exporter](https://github.com/freifunk-darmstadt/fastd-exporter)\n\n### Installation\n\n```\n$ go get github.com/freifunk-mwu/fastd-limiter\n```\n\n### Configuration\n\nfastd-limiter searches for a config file in `/etc/fastd-limiter.yaml`. An example\ncan be found in this repository.\n\nThere are three mandatory config options: `fastd_keys`, `gateways` and\n`metrics_url`.\n\n**fastd_keys** is the path to the directory that holds the fastd public keys.\n\n**gateways** is a list of all gateways from which *fastd-exporter* metrics should\nbe retrieved.\n\n**metrics_url** is the base url for retrieving metrics. It has to include on one\nplaceholder *(%s)* which is replaced with the values from **gateways**.\n\n*All other options are populated with sane default values. See example config\nfor more information.*\n\n### Usage\n\nfastd-limiter has four commands: `keys`, `limit`, `peers` and `verify`. The\nfirst three are meant be called periodically. `verify` is supposed to be called\nvia `on verify` by fastd.\n\n```\n./fastd-limiter [command]\n```\n\n**keys** reads all keys found into the Redis database with the configured TTL.\n\n**limit** reads the prometheus metrics from all configured gateways, calculates\nthe average peer count and stores it in the Redis database.\n\n**peers** reads the local prometheus metrics and writes the locally connected\npeers count into the Redis database.\n\n**verify** takes the public key to verify as first command line argument and\nchecks if it is present in the Redis database and if the connected locally\nconnected peers are below the calculated limit. If one of the two criteria is\nnot met the application exits with a return code of 1.\n\n```\n./fastd-limiter verify [fastd_key]\n```\n\n### Help\n\nCheck out the help for additional information.\n\n```\n$ ./fastd-limiter --help\n```\n\n### Formatting\n\nWe are using go's internal formatting for this codebase.\n\n```\n$ go fmt\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreifunk-mwu%2Ffastd-limiter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreifunk-mwu%2Ffastd-limiter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreifunk-mwu%2Ffastd-limiter/lists"}