diff --git a/hosts/muho/configuration.nix b/hosts/muho/configuration.nix index d2580fe..e20c91f 100644 --- a/hosts/muho/configuration.nix +++ b/hosts/muho/configuration.nix @@ -28,6 +28,8 @@ in { mods.server.astral.enable = false; mods.server.astral.autoStart = false; + mods.server.search.enable = true; + mods.docker.media.enable = false; mods.server.sync.enable = false; @@ -83,6 +85,46 @@ in { enable32Bit = true; }; + ## GPU (NVidia GTX 1060) + ## https://nixos.wiki/wiki/Nvidia + # Enable OpenGL + # hardware.graphics = { enable = true; }; + + # # Load nvidia driver for Xorg and Wayland + # services.xserver.videoDrivers = [ "nvidia" ]; + + # hardware.nvidia = { + + # # Modesetting is required. + # modesetting.enable = true; + + # # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + # # Enable this if you have graphical corruption issues or application crashes after waking + # # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead + # # of just the bare essentials. + # powerManagement.enable = false; + + # # Fine-grained power management. Turns off GPU when not in use. + # # Experimental and only works on modern Nvidia GPUs (Turing or newer). + # powerManagement.finegrained = false; + + # # Use the NVidia open source kernel module (not to be confused with the + # # independent third-party "nouveau" open source driver). + # # Support is limited to the Turing and later architectures. Full list of + # # supported GPUs is at: + # # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # # Only available from driver 515.43.04+ + # # Currently alpha-quality/buggy, so false is currently the recommended setting. + # open = false; + + # # Enable the Nvidia settings menu, + # # accessible via `nvidia-settings`. + # nvidiaSettings = true; + + # # Optionally, you may need to select the appropriate driver version for your specific GPU. + # package = config.boot.kernelPackages.nvidiaPackages.stable; + # }; + # Version of first install system.stateVersion = "23.05"; } diff --git a/modules/nixos/server/default.nix b/modules/nixos/server/default.nix index 54f7544..d3c88a1 100644 --- a/modules/nixos/server/default.nix +++ b/modules/nixos/server/default.nix @@ -9,5 +9,6 @@ ./wireguard.nix ./headscale.nix ./photoprism.nix + ./search.nix ]; } diff --git a/modules/nixos/server/search.nix b/modules/nixos/server/search.nix new file mode 100644 index 0000000..a08507c --- /dev/null +++ b/modules/nixos/server/search.nix @@ -0,0 +1,48 @@ +{ pkgs, lib, config, ... }: +let + inherit (lib) types mkOption mkEnableOption; + cfg = config.mods.server.search; +in { + options.mods.server.search = { + enable = mkEnableOption { + default = false; + description = "enables search engine server"; + }; + + port = mkOption { + type = types.port; + default = 8081; + }; + + nginx = mkOption { + type = types.nullOr types.str; + default = "search"; + }; + }; + + config = { + services.searx = lib.mkIf cfg.enable { + enable = true; + + runInUwsgi = true; + uwsgiConfig = { + disable-logging = true; + http = ":${toString cfg.port}"; + }; + + settings = { + server.port = cfg.port; + server.bind_address = "0.0.0.0"; + server.secret_key = "temporary-before-sops"; + + enabled_plugins = [ "Hostnames plugin" "Tracker URL remover" ]; + hostnames.remove = [ "(.*.)?facebook.com$" ]; + hostnames.replace = { + "(.*.)?reddit.com$" = "redlib.northboot.xyz"; + "(.*.)?youtube.com$" = "invidious.example.com"; + }; + }; + }; + + }; +}