Compare commits

...

3 commits

7 changed files with 34 additions and 62 deletions

17
flake.lock generated
View file

@ -16,22 +16,6 @@
"type": "github" "type": "github"
} }
}, },
"blocklist": {
"flake": false,
"locked": {
"lastModified": 1773514984,
"narHash": "sha256-c6qB3i3wetKEp/uD+dR51v9Izbshhy+ECqi2K+1HSoc=",
"owner": "StevenBlack",
"repo": "hosts",
"rev": "24b12bd67d953a1afbfed3ae85c080b033b47c36",
"type": "github"
},
"original": {
"owner": "StevenBlack",
"repo": "hosts",
"type": "github"
}
},
"comin": { "comin": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@ -369,7 +353,6 @@
"root": { "root": {
"inputs": { "inputs": {
"betterfox": "betterfox", "betterfox": "betterfox",
"blocklist": "blocklist",
"comin": "comin", "comin": "comin",
"disko": "disko", "disko": "disko",
"dns": "dns", "dns": "dns",

View file

@ -80,11 +80,6 @@
url = "github:iBigQ/radicale-birthday-calendar"; url = "github:iBigQ/radicale-birthday-calendar";
flake = false; flake = false;
}; };
blocklist = {
url = "github:StevenBlack/hosts";
flake = false;
};
}; };
outputs = outputs =

View file

@ -1,40 +1,9 @@
{ config, lib, ... }:
{ {
config, options.custom.networking.hostName = lib.mkOption {
lib, type = lib.types.nonEmptyStr;
allHosts, default = config.networking.hostName;
... readOnly = true;
}:
let
cfg = config.custom.networking;
in
{
options.custom.networking = {
hostName = lib.mkOption {
type = lib.types.nonEmptyStr;
default = config.networking.hostName;
readOnly = true;
};
nodes = lib.mkOption {
type = lib.types.listOf lib.types.attrs;
default =
allHosts
|> lib.attrValues
|> lib.map (host: host.config.custom.networking)
|> lib.map (
node:
lib.removeAttrs node [
"nodes"
"peers"
]
);
readOnly = true;
};
peers = lib.mkOption {
type = lib.types.listOf lib.types.attrs;
default = cfg.nodes |> lib.filter (node: node.hostName != cfg.hostName);
readOnly = true;
};
}; };
config = { config = {

View file

@ -33,7 +33,9 @@ let
}; };
nodeRecords = nodeRecords =
netCfg.nodes allHosts
|> lib.attrValues
|> lib.map (host: host.config.custom.networking)
|> lib.map (node: { |> lib.map (node: {
name = node.hostName; name = node.hostName;
inherit (node.overlay) address; inherit (node.overlay) address;

View file

@ -10,7 +10,10 @@ let
netCfg = config.custom.networking; netCfg = config.custom.networking;
lighthouses = lighthouses =
netCfg.peers allHosts
|> lib.attrValues
|> lib.map (host: host.config.custom.networking)
|> lib.filter (node: node.hostName != netCfg.hostName)
|> lib.filter (peer: peer.overlay.isLighthouse) |> lib.filter (peer: peer.overlay.isLighthouse)
|> lib.map (lighthouse: lighthouse.overlay.address); |> lib.map (lighthouse: lighthouse.overlay.address);
in in

View file

@ -1,4 +1,9 @@
{ config, lib, ... }: {
config,
self,
lib,
...
}:
let let
cfg = config.custom.web-services.scrutiny; cfg = config.custom.web-services.scrutiny;
in in
@ -16,6 +21,11 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
assertions = lib.singleton {
assertion = self.lib.isPrivateDomain cfg.domain;
message = self.lib.mkUnprotectedMessage "Scrutiny";
};
services.scrutiny = { services.scrutiny = {
enable = true; enable = true;
settings.web.listen = { settings.web.listen = {

View file

@ -1,4 +1,9 @@
{ config, lib, ... }: {
config,
self,
lib,
...
}:
let let
cfg = config.custom.web-services.searxng; cfg = config.custom.web-services.searxng;
in in
@ -16,6 +21,11 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
assertions = lib.singleton {
assertion = self.lib.isPrivateDomain cfg.domain;
message = self.lib.mkUnprotectedMessage "SearXNG";
};
services.searx = { services.searx = {
enable = true; enable = true;
settings = { settings = {