makefu: init pnp

this is the first entry for my hosts, it provides only very basic support
with a lot of copy-paste from tv/lass
This commit is contained in:
makefu 2015-07-24 10:52:43 +02:00
parent 461bacfd6a
commit 2b3030c7b2
4 changed files with 136 additions and 2 deletions

View File

@ -1,4 +1,4 @@
deploy_host := root@uriel
deploy_host := root@pnp
nixpkgs_url := https://github.com/nixos/nixpkgs
nixpkgs_rev := 961fcbabd7643171ea74bd550fee1ce5c13c2e90
nixpkgs_rev := 4c01e6d91993b6de128795f4fbdd25f6227fb870
secrets_dir := /home/makefu/secrets/pnp

View File

@ -0,0 +1,38 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
<nixpkgs/nixos/modules/profiles/qemu-guest.nix>
../../2configs/makefu/base.nix
];
boot.loader.grub.enable = true;
boot.loader.grub.version = 2;
boot.loader.grub.device = "/dev/vda";
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "ehci_pci" "virtio_pci" "virtio_blk" ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
hardware.enableAllFirmware = true;
hardware.cpu.amd.updateMicrocode = true;
fileSystems."/" =
{ device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
nix.maxJobs = 1;
networking.hostName = "pnp"; # Define your hostname.
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [
wget
git
gnumake
];
}

96
2configs/makefu/base.nix Normal file
View File

@ -0,0 +1,96 @@
{ config, lib, pkgs, ... }:
with lib;
{
imports = [ ];
users.extraUsers = {
root = {
openssh.authorizedKeys.keys = map readFile [
../../Zpubkeys/makefu_arch.ssh.pub
];
};
makefu = {
uid = 9001;
group = "users";
home = "/home/makefu";
createHome = true;
useDefaultShell = true;
extraGroups = [
"wheel"
];
openssh.authorizedKeys.keys = map readFile [
../../Zpubkeys/makefu_arch.ssh.pub
];
};
};
services.openssh.enable = true;
nix.useChroot = true;
users.mutableUsers = true;
boot.tmpOnTmpfs = true;
systemd.tmpfiles.rules = [
"d /tmp 1777 root root - -"
];
environment.extraInit = ''
EDITOR=vim
'';
environment.systemPackages = with pkgs; [
git
vim
rxvt_unicode.terminfo
];
programs.bash = {
enableCompletion = true;
interactiveShellInit = ''
HISTCONTROL='erasedups:ignorespace'
HISTSIZE=900001
HISTFILESIZE=$HISTSIZE
shopt -s checkhash
shopt -s histappend histreedit histverify
shopt -s no_empty_cmd_completion
complete -d cd
'';
promptInit = ''
case $UID in
0) PS1='\[\e[1;31m\]\w\[\e[0m\] ' ;;
9001) PS1='\[\e[1;32m\]\w\[\e[0m\] ' ;;
*) PS1='\[\e[1;35m\]\u \[\e[1;32m\]\w\[\e[0m\] ' ;;
esac
if test -n "$SSH_CLIENT"; then
PS1='\[\033[35m\]\h'" $PS1"
fi
'';
};
environment.shellAliases = {
lsl = "ls -latr";
};
security.setuidPrograms = [ "sendmail" ];
services.journald.extraConfig = ''
SystemMaxUse=1G
RuntimeMaxUse=128M
'';
nixpkgs.config.packageOverrides = pkgs: {
nano = pkgs.runCommand "empty" {} "mkdir -p $out";
};
services.cron.enable = false;
services.nscd.enable = false;
boot.kernel.sysctl = {
# Enable IPv6 Privacy Extensions
"net.ipv6.conf.all.use_tempaddr" = 2;
"net.ipv6.conf.default.use_tempaddr" = 2;
};
i18n = {
consoleKeyMap = "us";
defaultLocale = "en_US.UTF-8";
};
}