{ config, pkgs, ... }: { imports = [ ./net.nix # see documentation in included getty-for-esp.nix: # brain hosts/puyak/root ## initrd unlocking # (brain hosts/puyak/luks-ssd;echo) | ssh root@$(brain krebs-secrets/puyak/initrd/hostname) 'cat > /crypt-ramfs/passphrase' ## news host ### shackspace ### # handle the worlddomination map via coap # drivedroid.shack for shackphone # # Say if muell will be collected # provide muellshack api: muell.shack # send mail if muell was not handled # provide light control api # light.shack lounge.light.shack power.light.shack openhab.shack lightapi.shack # light.shack web-ui #light.shack # powerraw usb serial to mqtt and raw socket # powerraw.shack standby.shack # send power stats to s3 # powerraw.shack must be available { # do not log to /var/spool/log services.nginx.appendHttpConfig = '' map $request_method $loggable { default 1; GET 0; } log_format vhost '$host $remote_addr - $remote_user ' '[$time_local] "$request" $status ' '$body_bytes_sent "$http_referer" ' '"$http_user_agent"'; error_log stderr; access_log syslog:server=unix:/dev/log vhost; ''; services.journald.rateLimitBurst = 10000; } # create samba share for anonymous usage with the laser and 3d printer pc # mobile.lounge.mpd.shack # hass.shack # connect to git.shackspace.de as group runner for rz # Statistics collection and visualization # # graphiteApi is broken and unused(hopefully) ## Collect data from mqtt.shack and store in graphite database ## Collect radioactive data and put into graphite ## mqtt.shack ## influx.shack ## Collect local statistics via collectd and send to collectd ## netbox.shack: Netbox is disabled as nobody seems to be using it anyway # # grafana.shack # shackdns.shack # replacement for leases.shack and shackles.shack # monitoring: prometheus.shack ## Collect local statistics via collectd and send to collectd ## shackie irc bot ]; krebs.build.host = config.krebs.hosts.puyak; sound.enable = false; boot = { loader.systemd-boot.enable = true; loader.efi.canTouchEfiVariables = true; initrd.luks.devices.luksroot.device = "/dev/sda3"; initrd.luks.cryptoModules = [ "aes" "sha512" "sha1" "xts" ]; initrd.availableKernelModules = [ "xhci_hcd" "ehci_pci" "ahci" "usb_storage" ]; kernelModules = [ "kvm-intel" ]; extraModprobeConfig = '' options thinkpad_acpi fan_control=1 ''; }; fileSystems = { "/" = { device = "/dev/mapper/pool-root"; fsType = "btrfs"; options = ["defaults" "noatime" "ssd" "compress=lzo"]; }; "/boot" = { device = "/dev/sda2"; }; "/bku" = { device = "/dev/mapper/pool-bku"; fsType = "btrfs"; options = ["defaults" "noatime" "ssd" "compress=lzo"]; }; "/home" = { device = "/dev/mapper/pool-home"; fsType = "btrfs"; options = ["defaults" "noatime" "ssd" "compress=lzo"]; }; "/tmp" = { device = "tmpfs"; fsType = "tmpfs"; options = ["nosuid" "nodev" "noatime"]; }; }; services.logind.lidSwitch = "ignore"; services.logind.lidSwitchExternalPower = "ignore"; environment.systemPackages = [ pkgs.zsh ]; system.activationScripts."disengage fancontrol" = '' echo level disengaged > /proc/acpi/ibm/fan ''; users.users.joerg = { openssh.authorizedKeys.keys = [ config.krebs.users.mic92.pubkey ]; isNormalUser = true; shell = "/run/current-system/sw/bin/zsh"; }; }