diff options
Diffstat (limited to 'Biz/Dev/Configuration.nix')
-rw-r--r-- | Biz/Dev/Configuration.nix | 248 |
1 files changed, 248 insertions, 0 deletions
diff --git a/Biz/Dev/Configuration.nix b/Biz/Dev/Configuration.nix new file mode 100644 index 0000000..70c2d36 --- /dev/null +++ b/Biz/Dev/Configuration.nix @@ -0,0 +1,248 @@ +{ config, lib, pkgs, ... }: + +let + murmurPort = 64738; + torrents = { from = 6000; to = 6999; }; +in { + networking = { + hostName = "lithium"; + hosts = { + "::1" = [ "localhost" "ipv6-localhost" "ipv6-loopback" ]; + }; + + firewall = { + allowedTCPPorts = [ + 22 8000 8443 443 # standard ports + 8080 8081 8082 # mostly for urbit + 500 10000 # no idea + 8096 # emby/jellyfin + 8112 # deluge + murmurPort + ]; + allowedTCPPortRanges = [ + { from = 3000; to = 3100; } # dev stuff + torrents + ]; + allowedUDPPorts = [ murmurPort ]; + allowedUDPPortRanges = [ + torrents + ]; + checkReversePath = false; + }; + + # The global useDHCP flag is deprecated, therefore explicitly set to false here. + # Per-interface useDHCP will be mandatory in the future, so this generated config + # replicates the default behaviour. + useDHCP = false; + interfaces.enp1s0.useDHCP = true; + interfaces.wlp0s20f0u4.useDHCP = true; + + wireless.enable = true; # Enables wireless support via wpa_supplicant. + wireless.interfaces = [ "wlp0s20f0u4" ]; + wireless.networks = { + Simanet = { + psk = "1123581321"; + }; + Simanet-5g = { + psk = "1123581321"; + priority = 1; + }; + }; + }; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + boot.enableContainers = true; + + powerManagement.enable = false; + + time.timeZone = "America/Los_Angeles"; + + fonts.fonts = with pkgs; [ + google-fonts mononoki source-code-pro fantasque-sans-mono hack-font + fira fira-code fira-code-symbols + ]; + + environment.systemPackages = [ + #pkgs.wemux + pkgs.tmux + ]; + + nixpkgs = { + config = { + allowUnfree = true; + allowBroken = true; + }; + }; + + hardware = { + opengl.enable = true; + pulseaudio = { + enable = true; + extraConfig = '' + load-module module-loopback + ''; + }; + }; + + programs = { + bash.enableCompletion = true; + command-not-found.enable = true; + gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + mosh.enable = true; + }; + + virtualisation = { + docker = { + enable = true; + liveRestore = false; + }; + libvirtd.enable = true; + virtualbox = { + host = { + enable = false; + headless = false; + addNetworkInterface = false; + }; + guest = { + enable = false; + x11 = false; + }; + }; + }; + + services = { + pcscd.enable = true; + logind = { + lidSwitch = "ignore"; + extraConfig = "IdleAction=ignore"; + }; + + deluge = { + enable = true; + openFilesLimit = 10240; + web.enable = true; + }; + + printing.enable = true; + + murmur = { + enable = true; + registerName = "simatime"; + password = "simatime"; + port = murmurPort; + }; + + xserver = { + enable = true; + autorun = true; + layout = "us"; + xkbOptions = "caps:ctrl_modifier"; + displayManager = { + sddm = { + enable = true; + enableHidpi = true; + }; + #startx.enable = true; + session = [ + { + manage = "desktop"; + name = "home-manager"; + start = '' + ${pkgs.runtimeShell} $HOME/.hm-xsession & + waitPID=$! + ''; + } + ]; + }; + desktopManager = { + #kodi.enable = false; + #plasma5.enable = false; + xterm.enable = true; + }; + windowManager = { + xmonad.enable = true; + }; + }; + + jupyter = { + enable = false; + port = 3099; + ip = "*"; + password = "'sha1:4b14a407cabe:fbab8e5400f3f4f3ffbdb00e996190d6a84bf51e'"; + kernels = { + python3 = let + env = (pkgs.python3.withPackages (p: with p; [ + ipykernel pandas scikitlearn numpy matplotlib sympy ipywidgets + ])); + in { + displayName = "py3"; + argv = [ + "${env.interpreter}" + "-m" + "ipykernel_launcher" + "-f" + "{connection_file}" + ]; + language = "python"; + #logo32 = "${env.sitePackages}/lib/python3.6/site-packages/ipykernel/resources/logo-32x32.png"; + #logo64 = "${env.sitePackages}/lib/python3.6/site-packages/ipykernel/resources/logo-64x64.png"; + }; + }; + }; + + jellyfin = { # previously emby + enable = true; + user = "jellyfin"; + group = "jellyfin"; + }; + + vnstat.enable = true; + + postgresql = { + enable = true; + package = pkgs.postgresql_10; + authentication = '' + local all pprjam md5 + local all pprjam_test md5 + ''; + enableTCPIP = true; + }; + redis = { + enable = true; + }; + }; + + documentation = { + enable = true; + dev.enable = true; + doc.enable = true; + info.enable = true; + man.enable = true; + nixos.enable = true; + }; + + + nix = { + # 1 job * 2 cores = 2 maximum cores used at any one time + maxJobs = 1; + buildCores = 1; + # Since this is the dev machine, we can turn these on at the expense + # of extra disk space. + extraOptions = '' + keep-outputs = true + keep-derivations = true + ''; + trustedUsers = [ "root" "ben" ]; + }; + + # This value determines the NixOS release with which your system is to be + # compatible, in order to avoid breaking some software such as database + # servers. You should change this only after NixOS release notes say you + # should. + system.stateVersion = "20.09"; # Did you read the comment? +} |