{"id":20585416,"url":"https://github.com/freifunkbremen/yanic","last_synced_at":"2025-09-26T17:30:44.214Z","repository":{"id":5315681,"uuid":"52072179","full_name":"FreifunkBremen/yanic","owner":"FreifunkBremen","description":"Yet another node info collector  - for respondd to be used with meshviewer to Grafana (with influxdb or graphite)","archived":false,"fork":false,"pushed_at":"2024-07-19T22:45:20.000Z","size":1179,"stargazers_count":20,"open_issues_count":21,"forks_count":41,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-01-17T07:04:41.238Z","etag":null,"topics":["freifunk","gluon","grafana","graphite","influxdb","meshviewer"],"latest_commit_sha":null,"homepage":"https://freifunkbremen.github.io/yanic/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FreifunkBremen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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":"2016-02-19T08:13:47.000Z","updated_at":"2024-07-18T13:46:12.000Z","dependencies_parsed_at":"2024-07-18T11:26:05.822Z","dependency_job_id":"9024c997-82dd-4447-aee4-4eac23eb8e48","html_url":"https://github.com/FreifunkBremen/yanic","commit_stats":{"total_commits":406,"total_committers":29,"mean_commits":14.0,"dds":0.5098522167487685,"last_synced_commit":"cc71150d537e0261d8017863fb94c56edb536455"},"previous_names":["freifunkbremen/respondcollector"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreifunkBremen%2Fyanic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreifunkBremen%2Fyanic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreifunkBremen%2Fyanic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreifunkBremen%2Fyanic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FreifunkBremen","download_url":"https://codeload.github.com/FreifunkBremen/yanic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234325235,"owners_count":18814395,"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":["freifunk","gluon","grafana","graphite","influxdb","meshviewer"],"created_at":"2024-11-16T07:08:03.927Z","updated_at":"2025-09-26T17:30:44.207Z","avatar_url":"https://github.com/FreifunkBremen.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yanic\n```\n__   __          _\n\\ \\ / /_ _ _ __ (_) ___\n \\ V / _` | '_ \\| |/ __|\n  | | (_| | | | | | (__\n  |_|\\__,_|_| |_|_|\\___|\nYet another node info collector\n```\n\n[![status-badge](https://ci.codeberg.org/api/badges/14886/status.svg)](https://ci.codeberg.org/repos/14886/branches/main)\n[![codecov](https://codecov.io/gh/FreifunkBremen/yanic/branch/main/graph/badge.svg)](https://codecov.io/gh/FreifunkBremen/yanic)\n[![Go Report Card](https://goreportcard.com/badge/github.com/FreifunkBremen/yanic)](https://goreportcard.com/report/github.com/FreifunkBremen/yanic)\n\n`yanic` is a respondd client that fetches, stores and publishes information about a Freifunk network. The goals:\n* Generating JSON for [Meshviewer](https://github.com/ffrgb/meshviewer)\n* Storing statistics in [InfluxDB](https://influxdata.com/) or [Graphite](https://graphiteapp.org/) to be analyzed by [Grafana](http://grafana.org/)\n* Provide a little webserver for a standalone installation with a meshviewer\n\n## How it works\nIn the first step Yanic sends a multicast message to the group `ff05::2:1001` and port `1001`.\nRecently seen nodes that does not reply are requested via a unicast message.\n\n## Documentation\nTake a look at the [git](https://github.com/FreifunkBremen/yanic/blob/main/SUMMARY.md) or [website](https://freifunkbremen.github.io/yanic/)\n\n# Installation\nTake a look into the Documentation (see above) or for Quick Overview in [INSTALL.md](INSTALL.md).\n\nIf you like Docker you may want to take a look [here](https://github.com/christf/docker-yanic).\n\n## Configuration\nRead comments in [config_example.toml](config_example.toml) for more information.\n\n## Running\nYanic provides several commands:\n\n### Usage\nRun Yanic without any arguments to get the usage information:\n```\nUsage:\n  yanic [command]\n\nAvailable Commands:\n  help        Help about any command\n  import      Imports global statistics from the given RRD files, requires InfluxDB\n  query       Sends a query on the interface to the destination and waits for a response\n  serve       Runs the yanic server\n\nFlags:\n  -h, --help              help for yanic\n      --loglevel uint32   Show log message starting at level (default 40)\n      --timestamps        Enables timestamps for log output\n\nUse \"yanic [command] --help\" for more information about a command.\n```\n\n#### Serve\nRuns the yanic server\n```\nUsage:\n  yanic serve [flags]\n\nExamples:\nyanic serve --config /etc/yanic.toml\n\nFlags:\n  -c, --config string   Path to configuration file (default \"config.toml\")\n  -h, --help            help for serve\n\nGlobal Flags:\n      --loglevel uint32   Show log message starting at level (default 40)\n      --timestamps        Enables timestamps for log output\n```\n\n#### Query\nSends a query on the interface to the destination and waits for a response\n```\nUsage:\n  yanic query \u003cinterfaces\u003e \u003cdestination\u003e [flags]\n\nExamples:\nyanic query \"eth0,wlan0\" \"fe80::eade:27ff:dead:beef\"\n\nFlags:\n  -h, --help        help for query\n      --ip string   ip address which is used for sending (optional - without definition used the link-local address)\n      --port int    define a port to listen (if not set or set to 0 the kernel will use a random free port at its own)\n      --wait int    Seconds to wait for a response (default 1)\n\nGlobal Flags:\n      --loglevel uint32   Show log message starting at level (default 40)\n      --timestamps        Enables timestamps for log output\n```\n\n#### Import\nImports global statistics from the given RRD files (ffmap-backend).\n```\nUsage:\n  yanic import \u003cfile.rrd\u003e \u003csite\u003e \u003cdomain\u003e [flags]\n\nExamples:\nyanic import --config /etc/yanic.toml olddata.rrd global global\n\nFlags:\n  -c, --config string   Path to configuration file (default \"config.toml\")\n  -h, --help            help for import\n\nGlobal Flags:\n      --loglevel uint32   Show log message starting at level (default 40)\n      --timestamps        Enables timestamps for log output\n```\n\n\n\n## Communities using Yanic\n* **Freifunk Aachen** uses InfluxDB, [Grafana](https://grafana.ffac.rocks), and [Meshviewer-FFM](https://map.aachen.freifunk.net).\n* **Freifunk Bremen** uses InfluxDB, [Grafana](https://grafana.bremen.freifunk.net), and [Meshviewer](https://map.bremen.freifunk.net) with a patch to show state-version of `nodes.json`.\n* **Freifunk Nord** uses [meshviewer](https://github.com/ffrgb/meshviewer) (commit 587740a) as frontend:  https://mesh.freifunknord.de/\n* **Freifunk Hannover** uses [Grafana](https://stats.ffh.zone), InfluxDB, and [Meshviewer](https://hannover.freifunk.net/karte/).\n* **Freifunk Rhein-Sieg e.V.** uses InfluxDB, [Grafana](https://grafana.freifunk-rhein-sieg.net/), [Meshviewer](https://map.freifunk-rhein-sieg.net/) - see [Github](https://github.com/Freifunk-Rhein-Sieg/Ansible-FFlo)\n* **Freifunk Ingolstadt** uses InfluxDB, [Grafana](https://grafana.freifunk-ingolstadt.de/), [Meshviewer](https://map.freifunk-ingolstadt.de/) - see https://git.bingo-ev.de/freifunk/mapserver-docker\n\nDo you know someone else using Yanic? Create a [pull request](https://github.com/FreifunkBremen/yanic/issues/new?template=community.md\u0026title=Mention+community+$name)!\n\n## Related projects\nCollecting data from respondd:\n* [HopGlass Server](https://github.com/plumpudding/hopglass-server) written in Node.js\n\nRespondd for servers:\n* [mesh-announce](https://github.com/ffnord/mesh-announce) from ffnord\n* [respondd](https://github.com/Sunz3r/ext-respondd) from Sunz3r\n\n\n## License\nThis software is licensed under the terms of the [AGPL v3 License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreifunkbremen%2Fyanic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreifunkbremen%2Fyanic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreifunkbremen%2Fyanic/lists"}