3
1
Fork
You've already forked yanic
0
Yet another node info collector - for respondd to be used with meshviewer to Grafana (with influxdb or graphite) old repo: https://github.com/FreifunkBremen/yanic/ old webpage: https://freifunkbremen.github.io/yanic/ https://freifunkbremen.codeberg.page/yanic/
  • Go 98.1%
  • Python 1.6%
  • Dockerfile 0.2%
genofire 91a882503e
All checks were successful
ci/woodpecker/push/docs Pipeline was successful
ci/woodpecker/push/go Pipeline was successful
ci/woodpecker/tag/go Pipeline was successful
feat(container): add container support
2025年07月03日 23:03:14 +02:00
.github chore(ci): use for docs branch pages 2025年07月02日 19:41:49 +02:00
.woodpecker feat(container): add container support 2025年07月03日 23:03:14 +02:00
cmd fix: improve logging to fix lint 2025年06月30日 23:18:39 +02:00
contrib feat(yanic-import-timestamp): allow importing from other yanic instance ( #223 ) 2023年09月11日 07:17:53 +02:00
data fix: improve logging to fix lint 2025年06月30日 23:18:39 +02:00
database fix(database/logging): refactory to use slog 2025年07月01日 23:52:56 +02:00
docs chore(ci): move docs generation to woodpecker 2025年07月03日 22:32:50 +02:00
lib fix: improve logging to fix lint 2025年06月30日 23:18:39 +02:00
output fix: improve logging to fix lint 2025年06月30日 23:18:39 +02:00
respond fix: improve logging to fix lint 2025年06月30日 23:18:39 +02:00
rrd Make linter happy 2022年03月28日 04:20:58 +02:00
runtime fix: improve logging to fix lint 2025年06月30日 23:18:39 +02:00
webserver fix: improve logging to fix lint 2025年06月30日 23:18:39 +02:00
.drone.yml add drone 2018年05月05日 23:30:24 +02:00
.editorconfig [TASK] Add editorconfig & format code ( #94 ) 2017年11月06日 00:59:42 +01:00
.gitignore chore(git): Ignore yanic binaries 2025年05月10日 12:31:38 +02:00
.gitlab-ci.yml Bump dependencies version 2020年05月18日 02:53:56 +02:00
.releaserc chore(ci): add semantic-release 2025年07月03日 22:32:50 +02:00
config_example.toml fix(database/logging): refactory to use slog 2025年07月01日 23:52:56 +02:00
Containerfile feat(container): add container support 2025年07月03日 23:03:14 +02:00
go.mod fix: update dependencies 2025年06月29日 23:21:23 +02:00
go.sum fix: update dependencies 2025年06月29日 23:21:23 +02:00
INSTALL.md chore(docs): update to new golang 2025年06月29日 23:40:46 +02:00
LICENSE Use license from Github template 2018年01月06日 15:11:02 +01:00
main.go not export logging stdout / stderr hook 2019年02月27日 02:51:01 +01:00
Makefile Switch to Github Actions 2022年03月28日 04:20:58 +02:00
mkdocs.yml chore(ci): move docs generation to woodpecker 2025年07月03日 22:32:50 +02:00
package-lock.json chore(ci): update semantic-release 2025年06月29日 23:57:58 +02:00
package.json chore(ci): update semantic-release 2025年06月29日 23:57:58 +02:00
README.md chore(ci): move docs generation to woodpecker 2025年07月03日 22:32:50 +02:00

Yanic

__ __ _
\ \ / /_ _ _ __ (_) ___
 \ V / _` | '_ \| |/ __|
 | | (_| | | | | | (__
 |_|\__,_|_| |_|_|\___|
Yet another node info collector

status-badge codecov Go Report Card

yanic is a respondd client that fetches, stores and publishes information about a Freifunk network. The goals:

  • Generating JSON for Meshviewer
  • Storing statistics in InfluxDB or Graphite to be analyzed by Grafana
  • Provide a little webserver for a standalone installation with a meshviewer

How it works

In the first step Yanic sends a multicast message to the group ff05::2:1001 and port 1001. Recently seen nodes that does not reply are requested via a unicast message.

Documentation

Take a look at the git or website

Installation

Take a look into the Documentation (see above) or for Quick Overview in INSTALL.md.

If you like Docker you may want to take a look here.

Configuration

Read comments in config_example.toml for more information.

Running

Yanic provides several commands:

Usage

Run Yanic without any arguments to get the usage information:

Usage:
 yanic [command]
Available Commands:
 help Help about any command
 import Imports global statistics from the given RRD files, requires InfluxDB
 query Sends a query on the interface to the destination and waits for a response
 serve Runs the yanic server
Flags:
 -h, --help help for yanic
 --loglevel uint32 Show log message starting at level (default 40)
 --timestamps Enables timestamps for log output
Use "yanic [command] --help" for more information about a command.

Serve

Runs the yanic server

Usage:
 yanic serve [flags]
Examples:
yanic serve --config /etc/yanic.toml
Flags:
 -c, --config string Path to configuration file (default "config.toml")
 -h, --help help for serve
Global Flags:
 --loglevel uint32 Show log message starting at level (default 40)
 --timestamps Enables timestamps for log output

Query

Sends a query on the interface to the destination and waits for a response

Usage:
 yanic query <interfaces> <destination> [flags]
Examples:
yanic query "eth0,wlan0" "fe80::eade:27ff:dead:beef"
Flags:
 -h, --help help for query
 --ip string ip address which is used for sending (optional - without definition used the link-local address)
 --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)
 --wait int Seconds to wait for a response (default 1)
Global Flags:
 --loglevel uint32 Show log message starting at level (default 40)
 --timestamps Enables timestamps for log output

Import

Imports global statistics from the given RRD files (ffmap-backend).

Usage:
 yanic import <file.rrd> <site> <domain> [flags]
Examples:
yanic import --config /etc/yanic.toml olddata.rrd global global
Flags:
 -c, --config string Path to configuration file (default "config.toml")
 -h, --help help for import
Global Flags:
 --loglevel uint32 Show log message starting at level (default 40)
 --timestamps Enables timestamps for log output

Communities using Yanic

Do you know someone else using Yanic? Create a pull request!

Collecting data from respondd:

Respondd for servers:

License

This software is licensed under the terms of the AGPL v3 License.