{ config, pkgs, ... }: let mpdStreamingPort = 8080; in { imports = [ /etc/nixos/hardware-configuration.nix ./common-headless.nix ./sway.nix ./uefi.nix ./fstrim.nix # ./nebula.nix ./tailscale.nix ]; environment.etc."lvm/lvm.conf".text = '' devices { issue_discards = 1 } ''; boot.initrd.luks.devices = { euhadra_crypt = { device = "/dev/disk/by-uuid/328a9ede-0958-490b-8e82-62b06b839e21"; preLVM = true; allowDiscards = true; }; }; networking.hostName = "euhadra"; networking.hostId = "ddb5f0fd"; hardware.cpu.intel.updateMicrocode = true; services.mpd = { enable = true; # network.listenAddress = "127.0.0.1"; musicDirectory = "/mnt/aplysia/music"; extraConfig = '' bind_to_address "10.59.0.6" bind_to_address "100.97.134.100" # audio_output { # type "alsa" # name "dac" # device "sysdefault:CARD=QAMP" # } audio_output { type "pulse" name "pulse" server "127.0.0.1" } audio_output { type "httpd" name "http" encoder "flac" port "${toString mpdStreamingPort}" } replaygain "auto" restore_paused "yes" ''; }; services.pipewire = { config.pipewire-pulse = { "pulse.properties"."server.address" = [ "unix:native" "tcp:127.0.0.1:4713" "tcp:100.97.134.100:4713" ]; }; }; networking.wireguard.interfaces.wg0 = { ips = ["10.59.0.6/16"]; privateKeyFile = "/etc/wgkeys/euhadra"; allowedIPsAsRoutes = true; postSetup = '' ${pkgs.systemd}/bin/resolvectl domain wg0 '~htdf.gebner.org' '~mtlaa.gebner.org' '~ams.gebner.org' ${pkgs.systemd}/bin/resolvectl dns wg0 10.58.0.1 ''; peers = [{ publicKey = "ByLlJbevlTBooAo2RIZGGJvBHKqA9qiOpHBvR5yuJX4="; allowedIPs = ["10.56.0.0/14" "10.60.1.1"]; endpoint = "htdf-gw.gebner.org:35869"; # endpoint = "80.109.29.104:35869"; # endpoint = "127.0.0.1:35869"; }]; }; # systemd.services.wireguard-wg0.wantedBy = pkgs.lib.mkOverride 10 []; services.resolved = { domains = []; enable = true; }; networking.firewall.allowedTCPPorts = [ config.services.mpd.network.port 4713 # pulseaudio mpdStreamingPort # mpd streaming ]; environment.systemPackages = with pkgs; [ mpc_cli ]; hardware.opengl.extraPackages = [ pkgs.vaapiIntel ]; nixpkgs.config.mpv.vaapiSupport = true; # hardware.pulseaudio = { # systemWide = true; # zeroconf.publish.enable = true; # tcp = { # enable = true; # anonymousClients.allowedIpRanges = [ # "127.0.0.1" # "10.57.0.0/16" # ]; # }; # }; system.stateVersion = "22.05"; time.timeZone = pkgs.lib.mkOverride 10 "US/Pacific"; }