mob next [ci-skip] [ci skip] [skip ci]
lastFile:routers/fax-router/configuration.nix
This commit is contained in:
17
flake.lock
generated
17
flake.lock
generated
@@ -139,14 +139,19 @@
|
|||||||
"liminix": {
|
"liminix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758271851,
|
"lastModified": 1759950611,
|
||||||
"narHash": "sha256-pfh+oahaVh1HVbZsz+ZM/+YV8FXnjMQ62dcRDUpzzPA=",
|
"narHash": "sha256-wGMzkMYsXZX7aZC2mj1vubqi3Q728V162P6k/EE9tHE=",
|
||||||
"path": "/home/kurogeek/Desktop/gitea/dan/liminix",
|
"ref": "refs/heads/main",
|
||||||
"type": "path"
|
"rev": "29fbb5461d034c4c59b88cbe04937b04ecad18e0",
|
||||||
|
"revCount": 1572,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gti.telent.net/dan/liminix"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"path": "/home/kurogeek/Desktop/gitea/dan/liminix",
|
"ref": "refs/heads/main",
|
||||||
"type": "path"
|
"rev": "29fbb5461d034c4c59b88cbe04937b04ecad18e0",
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gti.telent.net/dan/liminix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-darwin": {
|
"nix-darwin": {
|
||||||
|
@@ -22,8 +22,8 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
liminix = {
|
liminix = {
|
||||||
# url = "git+https://gti.telent.net/dan/liminix?ref=refs/heads/main&rev=cb43857ecf45feb0351023946f559e8e3343d12a";
|
url = "git+https://gti.telent.net/dan/liminix?ref=refs/heads/main&rev=29fbb5461d034c4c59b88cbe04937b04ecad18e0";
|
||||||
url = "path:/home/kurogeek/Desktop/gitea/dan/liminix";
|
# url = "path:/home/kurogeek/Desktop/gitea/dan/liminix";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -4,140 +4,43 @@
|
|||||||
# devices: mostly you will need to attend to the number of wlan and lan
|
# devices: mostly you will need to attend to the number of wlan and lan
|
||||||
# interfaces
|
# interfaces
|
||||||
{ inputs }:
|
{ inputs }:
|
||||||
{
|
{ config, pkgs, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
let
|
||||||
secrets = {
|
inherit (pkgs.liminix.services) target;
|
||||||
domainName = "fake.liminix.org";
|
|
||||||
firewallRules = { };
|
|
||||||
}
|
|
||||||
// (import ./rotuer-secrets.nix);
|
|
||||||
svc = config.system.service;
|
svc = config.system.service;
|
||||||
wirelessConfig = {
|
|
||||||
country_code = "GB";
|
|
||||||
inherit (secrets) wpa_passphrase;
|
|
||||||
wmm_enabled = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
boot = {
|
|
||||||
tftp = {
|
|
||||||
freeSpaceBytes = 3 * 1024 * 1024;
|
|
||||||
serverip = "10.0.0.1";
|
|
||||||
ipaddr = "10.0.0.8";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
"${modulesPath}/profiles/gateway.nix"
|
"${inputs.liminix}/modules/wlan.nix"
|
||||||
|
"${inputs.liminix}/modules/network"
|
||||||
|
"${inputs.liminix}/modules/ntp"
|
||||||
|
"${inputs.liminix}/modules/vlan"
|
||||||
];
|
];
|
||||||
hostname = "rotuer";
|
|
||||||
|
|
||||||
profile.gateway = {
|
services.dhcpv4 =
|
||||||
lan = {
|
let
|
||||||
interfaces = with config.hardware.networkInterfaces; [
|
iface = svc.network.link.build { ifname = "eth1"; };
|
||||||
# EDIT: these are the interfaces exposed by the gl.inet gl-ar750:
|
in
|
||||||
# if your device has more or differently named lan interfaces,
|
svc.network.dhcp.client.build { interface = iface; };
|
||||||
# specify them here
|
|
||||||
wlan
|
|
||||||
wlan5
|
|
||||||
lan
|
|
||||||
];
|
|
||||||
inherit (secrets.lan) prefix;
|
|
||||||
address = {
|
|
||||||
family = "inet";
|
|
||||||
address = "${secrets.lan.prefix}.1";
|
|
||||||
prefixLength = 24;
|
|
||||||
};
|
|
||||||
dhcp = {
|
|
||||||
start = 10;
|
|
||||||
end = 240;
|
|
||||||
hosts =
|
|
||||||
{ } // lib.optionalAttrs (builtins.pathExists ./static-leases.nix) (import ./static-leases.nix);
|
|
||||||
localDomain = "lan";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
wan = {
|
|
||||||
# wan interface depends on your upstream - could be dhcp, static
|
|
||||||
# ethernet, a pppoe, ppp over serial, a complicated bonded
|
|
||||||
# failover ... who knows what else?
|
|
||||||
interface = svc.pppoe.build {
|
|
||||||
interface = config.hardware.networkInterfaces.wan;
|
|
||||||
username = secrets.l2tp.name;
|
|
||||||
password = secrets.l2tp.password;
|
|
||||||
bandwidth = 70 * 1000 * 1000;
|
|
||||||
};
|
|
||||||
# once the wan has ipv4 connnectivity, should we run dhcp6
|
|
||||||
# client to potentially get an address range ("prefix
|
|
||||||
# delegation")
|
|
||||||
dhcp6.enable = true;
|
|
||||||
};
|
|
||||||
firewall = {
|
|
||||||
enable = true;
|
|
||||||
rules = secrets.firewallRules;
|
|
||||||
};
|
|
||||||
wireless.networks = {
|
|
||||||
# EDIT: if you have more or fewer wireless radios, here is where
|
|
||||||
# you need to say so. hostapd tuning is hardware-specific and
|
|
||||||
# left as an exercise for the reader :-).
|
|
||||||
|
|
||||||
"${secrets.ssid}" = {
|
services.defaultroute4 = svc.network.route.build {
|
||||||
interface = config.hardware.networkInterfaces.wlan;
|
via = "$(output ${services.dhcpv4} ip)";
|
||||||
hw_mode = "g";
|
target = "default";
|
||||||
channel = "2";
|
dependencies = [ services.dhcpv4 ];
|
||||||
ieee80211n = 1;
|
|
||||||
}
|
|
||||||
// wirelessConfig;
|
|
||||||
"${secrets.ssid}5" = rec {
|
|
||||||
interface = config.hardware.networkInterfaces.wlan5;
|
|
||||||
hw_mode = "a";
|
|
||||||
channel = 36;
|
|
||||||
ht_capab = "[HT40+]";
|
|
||||||
vht_oper_chwidth = 1;
|
|
||||||
vht_oper_centr_freq_seg0_idx = channel + 6;
|
|
||||||
ieee80211n = 1;
|
|
||||||
ieee80211ac = 1;
|
|
||||||
}
|
|
||||||
// wirelessConfig;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.ntp = svc.ntp.build {
|
services.packet_forwarding = svc.network.forward.build { };
|
||||||
user = "root";
|
|
||||||
|
services.ntp = config.system.service.ntp.build {
|
||||||
pools = {
|
pools = {
|
||||||
"pool.ntp.org" = [ "iburst" ];
|
"pool.ntp.org" = [ "iburst" ];
|
||||||
};
|
};
|
||||||
makestep = {
|
|
||||||
threshold = 1.0;
|
|
||||||
limit = 3;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.sshd = svc.ssh.build { };
|
boot.tftp = {
|
||||||
|
serverip = "192.168.8.148";
|
||||||
users.root = secrets.root;
|
ipaddr = "192.168.8.251";
|
||||||
|
|
||||||
defaultProfile.packages = with pkgs; [
|
|
||||||
min-collect-garbage
|
|
||||||
nftables
|
|
||||||
strace
|
|
||||||
tcpdump
|
|
||||||
s6
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.busybox = {
|
|
||||||
applets = [
|
|
||||||
"fdisk"
|
|
||||||
"sfdisk"
|
|
||||||
];
|
|
||||||
options = {
|
|
||||||
FEATURE_FANCY_TAIL = "y";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
defaultProfile.packages = [ pkgs.hello ];
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user