tv: init xu/x220
This commit is contained in:
parent
31074d797c
commit
43d3116dc0
390
tv/1systems/xu.nix
Normal file
390
tv/1systems/xu.nix
Normal file
|
@ -0,0 +1,390 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
krebs.build.host = config.krebs.hosts.xu;
|
||||
krebs.build.user = config.krebs.users.tv;
|
||||
|
||||
krebs.build.target = "root@xu";
|
||||
|
||||
krebs.build.source = {
|
||||
git.nixpkgs = {
|
||||
url = https://github.com/NixOS/nixpkgs;
|
||||
rev = "e57024f821c94caf5684964474073649b8b6356b";
|
||||
};
|
||||
dir.secrets = {
|
||||
host = config.krebs.hosts.wu;
|
||||
path = "/home/tv/secrets/xu";
|
||||
};
|
||||
dir.stockholm = {
|
||||
host = config.krebs.hosts.wu;
|
||||
path = "/home/tv/stockholm";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
../2configs/hw/x220.nix
|
||||
../2configs/base.nix
|
||||
#../2configs/consul-client.nix
|
||||
../2configs/git.nix
|
||||
../2configs/mail-client.nix
|
||||
../2configs/xserver
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
# stockholm
|
||||
genid
|
||||
gnumake
|
||||
hashPassword
|
||||
lentil
|
||||
parallel
|
||||
(pkgs.writeScriptBin "im" ''
|
||||
#! ${pkgs.bash}/bin/bash
|
||||
export PATH=${makeSearchPath "bin" (with pkgs; [
|
||||
tmux
|
||||
gnugrep
|
||||
weechat
|
||||
])}
|
||||
if tmux list-sessions -F\#S | grep -q '^im''$'; then
|
||||
exec tmux attach -t im
|
||||
else
|
||||
exec tmux new -s im weechat
|
||||
fi
|
||||
'')
|
||||
|
||||
# root
|
||||
cryptsetup
|
||||
ntp # ntpate
|
||||
|
||||
# tv
|
||||
bc
|
||||
bind # dig
|
||||
#cac
|
||||
dic
|
||||
ff
|
||||
file
|
||||
gitAndTools.qgit #xserver
|
||||
gnupg21
|
||||
haskellPackages.hledger
|
||||
htop
|
||||
jq
|
||||
manpages
|
||||
mkpasswd
|
||||
mpv #xserver
|
||||
netcat
|
||||
nix-repl
|
||||
nmap
|
||||
nq
|
||||
p7zip
|
||||
pavucontrol #xserver
|
||||
posix_man_pages
|
||||
#pssh
|
||||
qrencode
|
||||
sxiv #xserver
|
||||
texLive
|
||||
tmux
|
||||
zathura #xserver
|
||||
|
||||
#ack
|
||||
#apache-httpd
|
||||
#ascii
|
||||
#emacs
|
||||
#es
|
||||
#esniper
|
||||
#gcc
|
||||
#gptfdisk
|
||||
#graphviz
|
||||
#haskellPackages.cabal2nix
|
||||
#haskellPackages.ghc
|
||||
#haskellPackages.shake
|
||||
#hdparm
|
||||
#i7z
|
||||
#iftop
|
||||
#imagemagick
|
||||
#inotifyTools
|
||||
#iodine
|
||||
#iotop
|
||||
#lshw
|
||||
#lsof
|
||||
#minicom
|
||||
#mtools
|
||||
#ncmpc
|
||||
#neovim
|
||||
#nethogs
|
||||
#nix-prefetch-scripts #cvs bug
|
||||
#openssl
|
||||
#openswan
|
||||
#parted
|
||||
#perl
|
||||
#powertop
|
||||
#ppp
|
||||
#proot
|
||||
#pythonPackages.arandr
|
||||
#pythonPackages.youtube-dl
|
||||
#racket
|
||||
#rxvt_unicode-with-plugins
|
||||
#scrot
|
||||
#sec
|
||||
#silver-searcher
|
||||
#sloccount
|
||||
#smartmontools
|
||||
#socat
|
||||
#sshpass
|
||||
#strongswan
|
||||
#sysdig
|
||||
#sysstat
|
||||
#tcpdump
|
||||
#tlsdate
|
||||
#unetbootin
|
||||
#utillinuxCurses
|
||||
#wvdial
|
||||
#xdotool
|
||||
#xkill
|
||||
#xl2tpd
|
||||
#xsel
|
||||
];
|
||||
}
|
||||
{
|
||||
tv.iptables = {
|
||||
enable = true;
|
||||
input-internet-accept-new-tcp = [
|
||||
"ssh"
|
||||
"http"
|
||||
"tinc"
|
||||
"smtp"
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
krebs.exim-retiolum.enable = true;
|
||||
}
|
||||
{
|
||||
krebs.nginx = {
|
||||
enable = true;
|
||||
servers.default.locations = [
|
||||
(nameValuePair "~ ^/~(.+?)(/.*)?\$" ''
|
||||
alias /home/$1/public_html$2;
|
||||
'')
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
krebs.retiolum = {
|
||||
enable = true;
|
||||
connectTo = [
|
||||
"cd"
|
||||
"gum"
|
||||
"pigstarter"
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
users.extraGroups = {
|
||||
tv.gid = 1337;
|
||||
slaves.gid = 3799582008; # genid slaves
|
||||
};
|
||||
|
||||
users.extraUsers =
|
||||
mapAttrs (name: user@{ extraGroups ? [], ... }: user // {
|
||||
inherit name;
|
||||
home = "/home/${name}";
|
||||
createHome = true;
|
||||
useDefaultShell = true;
|
||||
group = "tv";
|
||||
extraGroups = ["slaves"] ++ extraGroups;
|
||||
}) {
|
||||
ff = {
|
||||
uid = 13378001;
|
||||
extraGroups = [
|
||||
"audio"
|
||||
"video"
|
||||
];
|
||||
};
|
||||
|
||||
cr = {
|
||||
uid = 13378002;
|
||||
extraGroups = [
|
||||
"audio"
|
||||
"video"
|
||||
"bumblebee"
|
||||
];
|
||||
};
|
||||
|
||||
fa = {
|
||||
uid = 2300001;
|
||||
};
|
||||
|
||||
rl = {
|
||||
uid = 2300002;
|
||||
};
|
||||
|
||||
tief = {
|
||||
uid = 2300702;
|
||||
};
|
||||
|
||||
btc-bitcoind = {
|
||||
uid = 2301001;
|
||||
};
|
||||
|
||||
btc-electrum = {
|
||||
uid = 2301002;
|
||||
};
|
||||
|
||||
ltc-litecoind = {
|
||||
uid = 2301101;
|
||||
};
|
||||
|
||||
eth = {
|
||||
uid = 2302001;
|
||||
};
|
||||
|
||||
emse-hsdb = {
|
||||
uid = 4200101;
|
||||
};
|
||||
|
||||
wine = {
|
||||
uid = 13370400;
|
||||
extraGroups = [
|
||||
"audio"
|
||||
"video"
|
||||
"bumblebee"
|
||||
];
|
||||
};
|
||||
|
||||
df = {
|
||||
uid = 13370401;
|
||||
extraGroups = [
|
||||
"audio"
|
||||
"video"
|
||||
"bumblebee"
|
||||
];
|
||||
};
|
||||
|
||||
xr = {
|
||||
uid = 13370061;
|
||||
extraGroups = [
|
||||
"audio"
|
||||
"video"
|
||||
];
|
||||
};
|
||||
|
||||
"23" = {
|
||||
uid = 13370023;
|
||||
};
|
||||
|
||||
electrum = {
|
||||
uid = 13370102;
|
||||
};
|
||||
|
||||
skype = {
|
||||
uid = 6660001;
|
||||
extraGroups = [
|
||||
"audio"
|
||||
];
|
||||
};
|
||||
|
||||
onion = {
|
||||
uid = 6660010;
|
||||
};
|
||||
|
||||
zalora = {
|
||||
uid = 1000301;
|
||||
extraGroups = [
|
||||
"audio"
|
||||
# TODO remove vboxusers when hardening is active
|
||||
"vboxusers"
|
||||
"video"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
security.sudo.extraConfig =
|
||||
let
|
||||
isSlave = u: elem "slaves" u.extraGroups;
|
||||
masterOf = u: u.group;
|
||||
slaves = filterAttrs (_: isSlave) config.users.extraUsers;
|
||||
toSudoers = u: "${masterOf u} ALL=(${u.name}) NOPASSWD: ALL";
|
||||
in
|
||||
concatMapStringsSep "\n" toSudoers (attrValues slaves);
|
||||
}
|
||||
];
|
||||
|
||||
boot.initrd.luks = {
|
||||
cryptoModules = [ "aes" "sha512" "xts" ];
|
||||
devices = [
|
||||
{ name = "xuca"; device = "/dev/sda2"; }
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/mapper/xuvga-root";
|
||||
fsType = "btrfs";
|
||||
options = "defaults,noatime,ssd,compress=lzo";
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/mapper/xuvga-home";
|
||||
fsType = "btrfs";
|
||||
options = "defaults,noatime,ssd,compress=lzo";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/sda1";
|
||||
};
|
||||
"/tmp" = {
|
||||
device = "tmpfs";
|
||||
fsType = "tmpfs";
|
||||
options = "nosuid,nodev,noatime";
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.config.chromium.enablePepperFlash = true;
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
#hardware.bumblebee.enable = true;
|
||||
#hardware.bumblebee.group = "video";
|
||||
hardware.enableAllFirmware = true;
|
||||
#hardware.opengl.driSupport32Bit = true;
|
||||
hardware.pulseaudio.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
#xlibs.fontschumachermisc
|
||||
#slock
|
||||
ethtool
|
||||
#firefoxWrapper # with plugins
|
||||
#chromiumDevWrapper
|
||||
tinc
|
||||
iptables
|
||||
#jack2
|
||||
|
||||
gptfdisk
|
||||
];
|
||||
|
||||
security.setuidPrograms = [
|
||||
"sendmail" # for cron
|
||||
#"slock"
|
||||
];
|
||||
|
||||
services.printing.enable = true;
|
||||
|
||||
services.journald.extraConfig = ''
|
||||
SystemMaxUse=1G
|
||||
RuntimeMaxUse=128M
|
||||
'';
|
||||
|
||||
# see tmpfiles.d(5)
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /tmp 1777 root root - -" # does this work with mounted /tmp?
|
||||
];
|
||||
|
||||
#virtualisation.libvirtd.enable = true;
|
||||
|
||||
#services.bitlbee.enable = true;
|
||||
#services.tor.client.enable = true;
|
||||
#services.tor.enable = true;
|
||||
#services.virtualboxHost.enable = true;
|
||||
|
||||
|
||||
# The NixOS release to be compatible with for stateful data such as databases.
|
||||
system.stateVersion = "15.09";
|
||||
}
|
60
tv/2configs/hw/x220.nix
Normal file
60
tv/2configs/hw/x220.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../smartd.nix
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ahci" ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
|
||||
boot.loader.gummiboot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking.wireless.enable = true;
|
||||
|
||||
#hardware.enableAllFirmware = true;
|
||||
#nixpkgs.config.allowUnfree = true;
|
||||
#zramSwap.enable = true;
|
||||
#zramSwap.numDevices = 2;
|
||||
|
||||
hardware.trackpoint = {
|
||||
enable = true;
|
||||
sensitivity = 220;
|
||||
speed = 0;
|
||||
emulateWheel = true;
|
||||
};
|
||||
|
||||
services.tlp.enable = true;
|
||||
services.tlp.extraConfig = ''
|
||||
START_CHARGE_THRESH_BAT0=80
|
||||
'';
|
||||
|
||||
nix = {
|
||||
buildCores = 2;
|
||||
maxJobs = 2;
|
||||
daemonIONiceLevel = 1;
|
||||
daemonNiceLevel = 1;
|
||||
};
|
||||
|
||||
services.logind.extraConfig = ''
|
||||
HandleHibernateKey=ignore
|
||||
HandleLidSwitch=ignore
|
||||
HandlePowerKey=ignore
|
||||
HandleSuspendKey=ignore
|
||||
'';
|
||||
|
||||
services.xserver = {
|
||||
videoDriver = "intel";
|
||||
vaapiDrivers = [ pkgs.vaapiIntel pkgs.vaapiVdpau ];
|
||||
deviceSection = ''
|
||||
Option "AccelMethod" "sna"
|
||||
'';
|
||||
};
|
||||
|
||||
#services.xserver.displayManager.sessionCommands =''
|
||||
# xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 8 1
|
||||
# xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 8 2
|
||||
# xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 6 7 4 5
|
||||
#'';
|
||||
}
|
Loading…
Reference in a new issue