Irdest
Modular decentralized peer-to-peer packet router and associated tools
Declared in: projects/Irdest/default.nix
Try the service in a VM
-
Install Nix
- Bash
-
$ apt install --yes curl git jq nix
- Bash
-
$ apt install --yes curl git jq nix
- Bash
-
$ pacman --sync --refresh --noconfirm curl git jq nix
-
Download a configuration file
# default.nix { ngipkgs ? import (fetchTarball "https://github.com/ngi-nix/ngipkgs/tarball/main") { }, }: ngipkgs.demo-vm ( { services.ratmand = { enable = true; }; } )
-
Enable binary substituters
- Bash
-
$ export NIX_CONFIG='substituters = https://cache.nixos.org/ https://ngi.cachix.org/ trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ngi.cachix.org-1:n+CAL72ROC3qQuLxIHpV+Tw5t42WhXmMhprAGkRSrOw='
-
Build and run a virtual machine
- Bash
-
$ nix-build ./default.nix && ./result
- Bash
-
$ nix-build ./default.nix && ./result
- Bash
-
$ rev=$(nix-instantiate --eval --attr sources.nixpkgs.rev https://github.com/ngi-nix/ngipkgs/archive/master.tar.gz | jq --raw-output)$ nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/$rev.tar.gz --packages nix --run "nix-build ./default.nix && ./result"
- Bash
-
$ nix-build ./default.nix && ./result
-
Usage Instructions
-
ratman-toolsare available in the shell. -
The ratmand dashboard is available at http://localhost:5850.
-
Options
programs.irdest-mblog Implement missing module
services.irdest-echo Implement missing module
services.irdest-proxy Implement missing module
services.ratmand
-
Whether to enable ratmand, a decentralised peer-to-peer packet router.
- Type:
boolean- Default:
false- Declared in:
- projects/Irdest/services/ratmand/module.nix
-
The ratman package to use.
- Type:
package- Default:
pkgs.ratman- Declared in:
- projects/Irdest/services/ratmand/module.nix
-
Configuration for ratmand.
See available options at https://codeberg.org/irdest/irdest/src/branch/main/ratman/src/config/ratmand-0.5.kdl.
- Type:
open submodule of attribute set of attribute set of (string or boolean or signed integer)- Default:
{ }- Declared in:
- projects/Irdest/services/ratmand/module.nix
-
Initial peers. The format is:
<driver>:<hostname/ip address>:[<port>].- Type:
list of string- Default:
[ ]- Declared in:
- projects/Irdest/services/ratmand/module.nix
-
verbosity level
- Type:
one of "trace", "debug", "info", "warn", "error", "fatal"- Default:
"info"- Declared in:
- projects/Irdest/services/ratmand/module.nix
services.ratmand.enable
services.ratmand.package
services.ratmand.settings
services.ratmand.settings.ratmand.peers
services.ratmand.verbosity
Examples
basic-ratmand
{ services.ratmand = { enable = true; }; }
Declared in: projects/Irdest/services/ratmand/examples/basic.nix
Binary files
Binaries are available under `pkgs.BINARY_NAME`, for example:# test.nix { ngipkgs ? import (fetchTarball "https://github.com/ngi-nix/ngipkgs/tarball/main") { }, # Extend Nixpkgs package set with NGIpkgs pkgs ? ngipkgs.pkgs.extend ngipkgs.overlays.default, }: { irdest-lora-firmware = pkgs.irdest-lora-firmware; }
$ nix-build -A irdest-lora-firmware test.nix
Available binaries:
- irdest-lora-firmware
Metadata
This project is funded by NLnet through these subgrants:
- Core
- Irdest-Proxy
- Entrust
- Irdest-OpenWRT-BLE
- Irdest-Spec
- Review
- Irdest
Related links: