Merge remote-tracking branch 'lass/master' into 20.03

This commit is contained in:
makefu 2020-04-23 16:59:07 +02:00
commit 07ab7b9519
No known key found for this signature in database
GPG Key ID: 36F7711F3FC0F225
12 changed files with 46 additions and 153 deletions

3
.gitmodules vendored
View File

@ -10,6 +10,3 @@
[submodule "jeschli/2configs/elisp"] [submodule "jeschli/2configs/elisp"]
path = jeschli/2configs/elisp path = jeschli/2configs/elisp
url = https://github.com/Jeschli/misc-elisp-scripts.git url = https://github.com/Jeschli/misc-elisp-scripts.git
[submodule "submodules/brockman"]
path = submodules/brockman
url = https://github.com/kmein/brockman.git

View File

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "ublock origin firefox browser addon"; description = "ublock origin firefox browser addon";
homepage = https://github.com/gorhill/uBlock; homepage = https://github.com/gorhill/uBlock;
license = licenses.gnu3; license = licenses.gpl3;
maintainers = []; maintainers = [];
platforms = stdenv.lib.platforms.all; platforms = stdenv.lib.platforms.all;
}; };

View File

@ -71,14 +71,13 @@ in
config = mkIf cfg.enable (lib.mkMerge [ config = mkIf cfg.enable (lib.mkMerge [
{ {
users.users = singleton { users.users.${cfg.user} = {
name = cfg.user;
description = "Charybdis IRC daemon user"; description = "Charybdis IRC daemon user";
uid = config.ids.uids.ircd; uid = config.ids.uids.ircd;
group = cfg.group; group = cfg.group;
}; };
users.groups = singleton { users.groups.${cfg.group} = {
name = cfg.group; name = cfg.group;
gid = config.ids.gids.ircd; gid = config.ids.gids.ircd;
}; };
@ -102,7 +101,7 @@ in
}; };
} }
(mkIf (cfg.motd != null) { (mkIf (cfg.motd != null) {
environment.etc."charybdis/ircd.motd".text = cfg.motd; environment.etc."charybdis/ircd.motd".text = cfg.motd;
}) })

View File

@ -39,6 +39,7 @@ with import <stockholm/lib>;
<stockholm/lass/2configs/network-manager.nix> <stockholm/lass/2configs/network-manager.nix>
<stockholm/lass/2configs/nfs-dl.nix> <stockholm/lass/2configs/nfs-dl.nix>
#<stockholm/lass/2configs/hardening.nix> #<stockholm/lass/2configs/hardening.nix>
<stockholm/lass/2configs/ppp.nix>
{ {
krebs.iptables.tables.filter.INPUT.rules = [ krebs.iptables.tables.filter.INPUT.rules = [
#risk of rain #risk of rain
@ -76,16 +77,6 @@ with import <stockholm/lib>;
}; };
}; };
} }
{
lass.umts = {
enable = true;
modem = "/dev/serial/by-id/usb-Lenovo_F5521gw_2C7D8D7C35FC7040-if09";
initstrings = ''
Init1 = AT+CFUN=1
Init2 = AT+CGDCONT=1,"IP","pinternet.interkom.de","",0,0
'';
};
}
{ {
services.nginx = { services.nginx = {
enable = true; enable = true;

View File

@ -114,7 +114,7 @@ in {
xkbOptions = "caps:escape"; xkbOptions = "caps:escape";
libinput.enable = true; libinput.enable = true;
displayManager.lightdm.enable = true; displayManager.lightdm.enable = true;
windowManager.default = "xmonad"; displayManager.defaultSession = "none+xmonad";
windowManager.session = [{ windowManager.session = [{
name = "xmonad"; name = "xmonad";
start = '' start = ''

View File

@ -2,18 +2,6 @@
{ {
networking.wireless.enable = lib.mkForce false; networking.wireless.enable = lib.mkForce false;
systemd.services.modemmanager = {
description = "ModemManager";
after = [ "network-manager.service" ];
bindsTo = [ "network-manager.service" ];
wantedBy = [ "network-manager.service" ];
serviceConfig = {
ExecStart = "${pkgs.modemmanager}/bin/ModemManager";
PrivateTmp = true;
Restart = "always";
RestartSec = "5";
};
};
networking.networkmanager = { networking.networkmanager = {
ethernet.macAddress = "random"; ethernet.macAddress = "random";
wifi.macAddress = "random"; wifi.macAddress = "random";

32
lass/2configs/ppp.nix Normal file
View File

@ -0,0 +1,32 @@
{ pkgs, ... }: {
# usage: pppd call default
environment.etc."ppp/peers/default".text = ''
/dev/ttyACM2
921600
crtscts
defaultroute
holdoff 10
lock
maxfail 0
noauth
nodetach
noipdefault
passive
persist
usepeerdns
connect "${pkgs.ppp}/bin/chat -f ${pkgs.writeText "default.chat" ''
ABORT "BUSY"
ABORT "NO CARRIER"
REPORT CONNECT
"" "ATDT*99#"
CONNECT
''}"
'';
environment.systemPackages = [
pkgs.ppp
];
}

View File

@ -12,7 +12,6 @@ _:
./pyload.nix ./pyload.nix
./restic.nix ./restic.nix
./screenlock.nix ./screenlock.nix
./umts.nix
./usershadow.nix ./usershadow.nix
./xjail.nix ./xjail.nix
./autowifi.nix ./autowifi.nix

View File

@ -1,112 +0,0 @@
{ config, lib, pkgs, ... }:
with import <stockholm/lib>;
let
cfg = config.lass.umts;
out = {
options.lass.umts = api;
config = lib.mkIf cfg.enable imp;
};
api = {
enable = mkEnableOption "umts";
modem = mkOption {
type = types.str;
default = "/dev/ttyUSB0";
};
initstrings = mkOption {
type = types.str;
default = ''
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
'';
};
username = mkOption {
type = types.str;
default = "default";
};
password = mkOption {
type = types.str;
default = "default";
};
pppDefaults = mkOption {
type = types.str;
default = ''
noipdefault
usepeerdns
defaultroute
persist
noauth
'';
};
};
nixpkgs-1509 = import (pkgs.fetchFromGitHub {
owner = "NixOS"; repo = "nixpkgs-channels";
rev = "91371c2bb6e20fc0df7a812332d99c38b21a2bda";
sha256 = "1as1i0j9d2n3iap9b471y4x01561r2s3vmjc5281qinirlr4al73";
}) {};
wvdial = nixpkgs-1509.wvdial; # https://github.com/NixOS/nixpkgs/issues/16113
umts-bin = pkgs.writeScriptBin "umts" ''
#!/bin/sh
set -euf
systemctl start umts
trap "systemctl stop umts;trap - INT TERM EXIT;exit" INT TERM EXIT
echo nameserver 8.8.8.8 | tee -a /etc/resolv.conf
journalctl -xfu umts
'';
wvdial-defaults = ''
[Dialer Defaults]
Modem = ${cfg.modem}
${cfg.initstrings}
Modem Type = Analog Modem
Baud = 460800
phone= *99#
Username = ${cfg.username}
Password = ${cfg.password}
Stupid Mode = 1
Idle Seconds = 0
PPPD Path = ${pkgs.ppp}/bin/pppd
'';
imp = {
environment.shellAliases = {
umts = "sudo ${umts-bin}/bin/umts";
};
environment.systemPackages = [
pkgs.ppp
];
security.sudo.extraConfig = ''
lass ALL= (root) NOPASSWD: ${umts-bin}/bin/umts
'';
environment.etc = [
{
source = pkgs.writeText "wvdial.conf" wvdial-defaults;
target = "wvdial.conf";
}
{
source = pkgs.writeText "wvdial" cfg.pppDefaults;
target = "ppp/peers/wvdial";
}
];
systemd.services.umts = {
description = "UMTS wvdial Service";
serviceConfig = {
Type = "simple";
Restart = "always";
RestartSec = "10s";
ExecStart = "${wvdial}/bin/wvdial -n";
};
};
};
in out

View File

@ -6,11 +6,11 @@ with import <stockholm/lib>;
type = types.attrsOf (types.submodule ({ config, ...}: { type = types.attrsOf (types.submodule ({ config, ...}: {
options = { options = {
name = mkOption { name = mkOption {
type = types.string; type = types.str;
default = config._module.args.name; default = config._module.args.name;
}; };
user = mkOption { user = mkOption {
type = types.string; type = types.str;
default = config.name; default = config.name;
}; };
groups = mkOption { groups = mkOption {
@ -18,11 +18,11 @@ with import <stockholm/lib>;
default = []; default = [];
}; };
from = mkOption { from = mkOption {
type = types.string; type = types.str;
default = "lass"; default = "lass";
}; };
display = mkOption { display = mkOption {
type = types.string; type = types.str;
default = toString (genid_uint31 config._module.args.name); default = toString (genid_uint31 config._module.args.name);
}; };
dpi = mkOption { dpi = mkOption {
@ -47,7 +47,7 @@ with import <stockholm/lib>;
}; };
wm = mkOption { wm = mkOption {
#TODO find type #TODO find type
type = types.string; type = types.str;
default = "${pkgs.writeHaskellPackage "xephyrify-xmonad" { default = "${pkgs.writeHaskellPackage "xephyrify-xmonad" {
executables.xmonad = { executables.xmonad = {
extra-depends = [ extra-depends = [

View File

@ -7,7 +7,7 @@ let
mkOptionType optional optionalAttrs optionals range splitString mkOptionType optional optionalAttrs optionals range splitString
stringLength substring test testString typeOf; stringLength substring test testString typeOf;
inherit (lib.types) inherit (lib.types)
attrsOf bool either enum int listOf nullOr path str string submodule; attrsOf bool either enum int listOf nullOr path str submodule;
in in
rec { rec {
@ -65,7 +65,7 @@ rec {
extraZones = mkOption { extraZones = mkOption {
default = {}; default = {};
# TODO: string is either MX, NS, A or AAAA # TODO: string is either MX, NS, A or AAAA
type = attrsOf string; type = attrsOf str;
}; };
secure = mkOption { secure = mkOption {
@ -182,7 +182,7 @@ rec {
extraConfig = mkOption { extraConfig = mkOption {
description = "Extra Configuration to be appended to the hosts file"; description = "Extra Configuration to be appended to the hosts file";
default = ""; default = "";
type = string; type = str;
}; };
port = mkOption { port = mkOption {
type = int; type = int;

@ -1 +0,0 @@
Subproject commit 1a5b3faa1185f8c0e7861ebadf07e48ac4bdf7e9