From 678313627a6d0cec8f7c9e6c791db330bf88913b Mon Sep 17 00:00:00 2001 From: Emery Date: Thu, 1 Sep 2022 14:28:20 -0500 Subject: [PATCH] Add ERIS CoAP server to nncp --- flake.lock | 127 ++++++++++++++++++++++++++++++++++++++++- flake.nix | 31 ++++++++-- hosts/nncp/default.nix | 4 +- hosts/nncp/eris.nix | 30 ++++++++++ 4 files changed, 182 insertions(+), 10 deletions(-) create mode 100644 hosts/nncp/eris.nix diff --git a/flake.lock b/flake.lock index d25102a3..717197fe 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,26 @@ { "nodes": { + "eris": { + "inputs": { + "nimble": "nimble", + "nixpkgs": [ + "nixos" + ] + }, + "locked": { + "lastModified": 1662480366, + "narHash": "sha256-TvVZy/iE5jcWWyVFV+9NUrptkepn5V8ttN91EMYueZ0=", + "ref": "refs/heads/trunk", + "rev": "39efd5f8333cdff03bd12766ce3943c1e91f27fc", + "revCount": 18, + "type": "git", + "url": "https://codeberg.org/eris/nix-eris" + }, + "original": { + "type": "git", + "url": "https://codeberg.org/eris/nix-eris" + } + }, "fenix": { "inputs": { "nixpkgs": [ @@ -36,6 +57,21 @@ "type": "github" } }, + "flake-utils_2": { + "locked": { + "lastModified": 1637014545, + "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "heliwatch": { "inputs": { "fenix": [ @@ -189,6 +225,28 @@ "type": "github" } }, + "naersk_2": { + "inputs": { + "nixpkgs": [ + "ticker", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1659610603, + "narHash": "sha256-LYgASYSPYo7O71WfeUOaEUzYfzuXm8c8eavJcel+pfI=", + "owner": "nix-community", + "repo": "naersk", + "rev": "c6a45e4277fa58abd524681466d3450f896dc094", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "rev": "c6a45e4277fa58abd524681466d3450f896dc094", + "type": "github" + } + }, "newNixpkgs": { "locked": { "lastModified": 1647380550, @@ -221,6 +279,26 @@ "type": "github" } }, + "nimble": { + "inputs": { + "nixpkgs": [ + "eris", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1662431150, + "narHash": "sha256-0TD9T6aMxUGe9FVvTI6np8V5HnnOgl4aoeSJ7XJgKZM=", + "owner": "nix-community", + "repo": "flake-nimble", + "rev": "961c2ab20939f0aaae17f97ab5a72e2c6589e600", + "type": "github" + }, + "original": { + "id": "nimble", + "type": "indirect" + } + }, "nix": { "inputs": { "lowdown-src": "lowdown-src", @@ -462,6 +540,7 @@ }, "root": { "inputs": { + "eris": "eris", "fenix": "fenix", "flake-utils": "flake-utils", "heliwatch": "heliwatch", @@ -481,12 +560,35 @@ "secrets": "secrets", "sops-nix": "sops-nix", "spacemsg": "spacemsg", + "syndicate": "syndicate", "ticker": "ticker", "tigger": "tigger", "yammat": "yammat", "zentralwerk": "zentralwerk" } }, + "rust": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "syndicate", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1656384549, + "narHash": "sha256-hUe2t7//B9U9SSODAplfzdKkwxwO4kHsPX2k0y95SUU=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "61df523b5c22665d89710d9985cf5afe751d703f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "rust-analyzer-src": { "flake": false, "locked": { @@ -579,14 +681,33 @@ "type": "github" } }, + "syndicate": { + "inputs": { + "nixpkgs": [ + "nixos" + ], + "rust": "rust" + }, + "locked": { + "lastModified": 1662481109, + "narHash": "sha256-h1PqGefF5mptkQmvXY7hSlBApK4t854QWsLEW0plq14=", + "ref": "refs/heads/trunk", + "rev": "3f4c5ae37e5e26b2a9167eb0503927b41e678871", + "revCount": 53, + "type": "git", + "url": "https://git.syndicate-lang.org/ehmry/syndicate-flake" + }, + "original": { + "type": "git", + "url": "https://git.syndicate-lang.org/ehmry/syndicate-flake" + } + }, "ticker": { "inputs": { "fenix": [ "fenix" ], - "naersk": [ - "naersk" - ], + "naersk": "naersk_2", "nixpkgs": [ "nixos" ], diff --git a/flake.nix b/flake.nix index e40e1fed..68f151db 100644 --- a/flake.nix +++ b/flake.nix @@ -6,6 +6,10 @@ nixpkgs-mobilizon.url = "github:minijackson/nixpkgs/init-mobilizon"; nixos-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixos-hardware.url = "github:nixos/nixos-hardware"; + eris = { + url = "git+https://codeberg.org/eris/nix-eris"; + inputs.nixpkgs.follows = "nixos"; + }; fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixos"; @@ -86,6 +90,10 @@ url = "github:astro/tigger"; flake = false; }; + syndicate = { + url = "git+https://git.syndicate-lang.org/ehmry/syndicate-flake"; + inputs.nixpkgs.follows = "nixos"; + }; yammat = { url = "git+https://gitea.c3d2.de/C3D2/yammat.git?ref=nix"; inputs.nixpkgs.follows = "nixos"; @@ -100,7 +108,7 @@ }; }; - outputs = inputs@{ self, nixos-unstable, nixos, secrets, nixos-hardware, zentralwerk, yammat, scrapers, spacemsg, tigger, ticker, heliwatch, sops-nix, naersk, fenix, microvm, riscv64, oparl-scraper, ... }: + outputs = inputs@{ self, eris, fenix, heliwatch, microvm, naersk, nixos, nixos-hardware, nixos-unstable, oparl-scraper, riscv64, scrapers, secrets, sops-nix, spacemsg, syndicate, ticker, tigger, yammat, zentralwerk, ... }: let inherit (nixos) lib; forAllSystems = lib.genAttrs [ "aarch64-linux" "x86_64-linux" ]; @@ -148,10 +156,15 @@ inherit nixos-unstable; }; - legacyPackages = lib.attrsets.mapAttrs - (system: pkgs: pkgs.appendOverlays - [ fenix.overlay naersk.overlay self.overlay ]) - nixos.legacyPackages; + legacyPackages = lib.attrsets.mapAttrs (system: pkgs: + pkgs.appendOverlays [ + fenix.overlay + naersk.overlay + syndicate.overlays.default + eris.inputs.nimble.overlay + eris.overlays.default + self.overlay + ]) nixos.legacyPackages; packages = lib.attrsets.mapAttrs (system: pkgs: let overlayPkgs = builtins.intersectAttrs (self.overlay {} {}) pkgs; @@ -531,7 +544,15 @@ modules = [ self.nixosModules.microvm self.nixosModules.nncp + syndicate.nixosModules.default ./hosts/nncp + { + nixpkgs.overlays = [ + syndicate.overlays.default + eris.inputs.nimble.overlay + eris.overlays.default + ]; + } ]; }; diff --git a/hosts/nncp/default.nix b/hosts/nncp/default.nix index b2570b0c..c15e0e41 100644 --- a/hosts/nncp/default.nix +++ b/hosts/nncp/default.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: { - imports = [ ./neighbours.nix ]; + imports = [ ./eris.nix ./neighbours.nix ]; microvm.interfaces = [ { type = "tap"; @@ -33,7 +33,7 @@ neigh = # use c3d2.nncp.neigh but remove this node let hourlyCall = { - cron = "0 42 * * * * *"; # 4:00 + cron = "0 42 * * * * *"; xx = "tx"; # transmit only when-tx-exists = true; }; diff --git a/hosts/nncp/eris.nix b/hosts/nncp/eris.nix new file mode 100644 index 00000000..13d040d6 --- /dev/null +++ b/hosts/nncp/eris.nix @@ -0,0 +1,30 @@ +{ pkgs, ... }: + +let home = "/var/spool/eris"; +in { + services.syndicate.eris = { + enable = true; + user = "eris"; + config = [ + (pkgs.writeText "eris.pr" '' + > + + + ? ?cap> $cap [ + + + ] + '') + ]; + }; + + users.groups.eris = { }; + users.users.eris = { + isSystemUser = true; + group = "eris"; + inherit home; + }; +}