nixos-config/defaults.nix

241 lines
5.2 KiB
Nix
Raw Normal View History

2019-12-25 15:20:36 -08:00
# Ref: https://learnxinyminutes.com/docs/nix/
{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
2020-01-15 09:24:11 -08:00
./packages/local.nix
./config/local.nix
2019-12-25 15:20:36 -08:00
];
nixpkgs.config.allowUnfree = true;
2020-06-06 18:58:13 -07:00
security.acme.acceptTerms = true;
2019-12-25 15:20:36 -08:00
environment.systemPackages = with pkgs; [
asdf
atop
autoconf
automake
bash
2020-06-06 19:24:59 -07:00
boot
2019-12-25 15:20:36 -08:00
bind
binutils
btrfs-progs
bundix
byobu
cdrtools
cargo
certbot
clang
curl
2020-06-06 19:24:59 -07:00
dpkg
2020-07-15 14:02:12 -07:00
enca
2019-12-25 15:20:36 -08:00
fail2ban
2020-06-25 20:46:18 -07:00
file
2019-12-25 15:20:36 -08:00
fortune
gcc
git
gnumake
gnupg
google-cloud-sdk
guile
heimdalFull
imagemagick
ipfs
iptables
jdk
2020-09-29 09:08:48 -07:00
jq
2019-12-25 15:20:36 -08:00
kerberos
2020-09-29 09:08:48 -07:00
leiningen
2019-12-25 15:20:36 -08:00
libisofs
2020-06-06 19:24:59 -07:00
libstdcxxHook
2019-12-25 15:20:36 -08:00
lispPackages.alexandria
lispPackages.cl-ppcre
lispPackages.clx
lispPackages.quicklisp
2020-07-23 22:38:48 -07:00
lsof
2019-12-25 15:20:36 -08:00
lshw
mkpasswd
ncurses5
2020-11-16 12:39:37 -08:00
nixfmt
2020-06-25 20:46:18 -07:00
nix-index
nix-prefetch-git
2019-12-25 15:20:36 -08:00
nmap
oidentd
openldap
openssh
openssl_1_1
openssh_gssapi
pciutils
2020-06-27 16:45:28 -07:00
pinentry.curses
2019-12-25 15:20:36 -08:00
pv
pwgen
ruby
rustc
sbcl
screen
service-wrapper
stdenv
telnet
texlive.combined.scheme-basic
tmux
unzip
vim
wget
2020-06-06 19:24:59 -07:00
yubikey-manager
2020-07-15 14:02:12 -07:00
yubikey-personalization
2019-12-25 15:20:36 -08:00
];
2020-07-16 14:55:00 -07:00
system.stateVersion = "20.03";
2019-12-25 15:20:36 -08:00
system.autoUpgrade.enable = true;
environment.etc.current-nixos-config.source = ./.;
krb5.enable = true;
krb5.kerberos = pkgs.heimdalFull;
2020-07-16 14:55:00 -07:00
services.xserver = {
layout = "us";
xkbVariant = "dvp";
xkbOptions = "ctrl:nocaps";
};
console = {
useXkbConfig = true;
};
2020-06-06 18:58:13 -07:00
2019-12-25 15:20:36 -08:00
i18n = {
defaultLocale = "en_US.UTF-8";
};
programs = {
mosh.enable = true;
ssh = {
2020-07-15 14:02:12 -07:00
startAgent = false;
2019-12-25 15:20:36 -08:00
extraConfig = ''
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
'';
};
bash.enableCompletion = true;
mtr.enable = true;
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
};
services = {
emacs = {
defaultEditor = true;
enable = true;
};
cron = {
enable = true;
};
openssh = {
enable = true;
startWhenNeeded = true;
2020-07-20 17:16:52 -07:00
permitRootLogin = "prohibit-password";
2019-12-25 15:20:36 -08:00
extraConfig = ''
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
'';
};
2020-07-15 14:02:12 -07:00
pcscd = {
enable = true;
};
udev.packages = with pkgs; [
yubikey-personalization
];
2019-12-25 15:20:36 -08:00
};
2020-07-15 14:02:12 -07:00
environment.shellInit = ''
gpg-connect-agent /bye
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
'';
2019-12-25 15:20:36 -08:00
security.pam = {
# TODO: add yubico?
2020-07-20 17:16:52 -07:00
services = {
sshd = {
# This should only ask for a code if ~/.google_authenticator exists, but it asks anyway.
# googleAuthenticator.enable = true;
makeHomeDir = true;
sshAgentAuth = true;
};
2019-12-25 15:20:36 -08:00
};
};
2020-01-15 09:24:11 -08:00
users.extraUsers = {
node = {
isSystemUser = true;
group = "nogroup";
2019-12-25 15:20:36 -08:00
};
};
2020-01-15 09:24:11 -08:00
users.groups = {
fudosys = {
gid = 888;
2019-12-25 15:20:36 -08:00
};
};
users.extraUsers = {
niten = {
isNormalUser = true;
uid = 10000;
createHome = true;
description = "Niten";
extraGroups = ["wheel" "audio" "video" "disk" "floppy" "lp" "cdrom" "tape" "dialout" "adm" "input" "systemd-journal" "fudosys" "libvirtd"];
group = "users";
home = "/home/niten";
hashedPassword = "$6$a1q2Duoe35hd5$IaZGXPfqyGv9uq5DQm7DZq0vIHsUs39sLktBiBBqMiwl/f/Z4jSvNZLJp9DZJYe5u2qGBYh1ca.jsXvQA8FPZ/";
2020-07-15 14:02:12 -07:00
openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDoWkjyeIfgwm0b78weToVYOQSD0RQ0qbNzpsN5NokbIFv2/980kLtnYrQEgIJ/JwMLlT3uJYacbCT5/a6Fb8oLxNpj0AF1EKaWZ3Rrlg72Sq+9SEwJwWWmZizX83sovMwUBMaUp6jWLhAhPpzBW5pfc5YWoc89wxGbELSwzgt5EgHbSJgvDnaHSp3fVaY01wfDXbL/oO160iNe7wv2HLMZu/FkWBkIjz6HmoGJJzYM89bUpHbyYG28lmCHB/8UPog5/BsjOn3/qupgf4zh6mMdMsXLvbR2jVwVjxcEMj9N5nCvc+Y3oi7Mij6VNrWbhkaAJMEzeMhWYrF3/pFQxUqG37aK3d0gw9kp5tMDLIlAPX4y1lfA87pIzoa0+Alql0CJQA1IJvp9SFG7lBmSthWQLmZvwwfoGg/ZjF6rOgsVoZ8TizpQnydWJDr6NboU9LL9Oa64OM5Rs0AU3cR2UbOF4QIcWFJ/7oDe3dOnfZ8QYqx9eXJyxoAUpDanaaTHYBiAKkeOBwQU+MVLKCcONKw9FZclf/1TpDB5b3/JeUFANjHQTv0UXA4YYU7iCx6H7XB4qwwtU9O19CGQYYfCfULX12/fRpYJw6VJaQWyyU4Bn5dk/dcB2nGI36jwbLMfhbUTIApujioAnd/GQIMakHEZ1+syPhMx9BxMkZb99B0A1Q== openpgp:0x4EC95B64"
];
2019-12-25 15:20:36 -08:00
};
reaper = {
isNormalUser = true;
uid = 10049;
createHome = true;
description = "Reaper";
extraGroups = ["wheel" "audio" "video" "disk" "floppy" "lp" "cdrom" "tape" "dialout" "adm" "input" "systemd-journal" "fudosys" "libvirtd"];
group = "users";
home = "/home/reaper";
hashedPassword = "$6$YVCI6kiGcG5EVMT$t9lYEXjAhbnh7YkvJJPAbrzL8XE/AASsKFlWWeS.fDjBi/8S7zwXTHF0j41nDUfC//3viysn0tIOQKyZTHhzG.";
};
fudo = {
isSystemUser = true;
uid = 888;
description = "Fudo System User";
group = "fudosys";
};
};
2020-11-17 15:29:44 -08:00
systemd.services.fudo-environment-init = {
enable = true;
description = "Fudo common settings.";
wantedBy = [ "default.target" ];
# Careful, this WILL run many times
script = ''
# Create a directory for system user homedirs if it doesn't already exist
if [ ! -d /var/home ]; then
mkdir -p /var/home
chmod +x /var/home
fi
'';
};
2019-12-25 15:20:36 -08:00
}