{ config, pkgs, lib, ... }: { services = { searx = { enable = true; package = pkgs.searxng; settings = { server = { port = 4000; bind_address = "127.0.0.1"; secret_key = "secret_key"; }; general = { debug = false; instance_name = "SearXNG"; donation_url = false; contact_url = false; privacypolicy_url = false; enable_metrics = false; autocomplete = "startpage"; }; # Search engines engines = lib.mapAttrsToList (name: value: { inherit name; } // value) { # main boys "brave" = { disabled = false; weight = 0.8; }; "duckduckgo" = { disabled = false; weight = 0.8; }; "ecosia" = { disabled = false; weight = 0.7; }; "mojeek" = { disabled = true; weight = 0.4; }; "mullvadleta" = { disabled = false; weight = 1; }; "qwant" = { disabled = false; weight = 0.4; }; "startpage" = { disabled = false; weight = 1; }; "wiby" = { disabled = false; weight = 0.4; }; # "openverse".disabled = false; # repos "bitbucket".disabled = false; "codeberg".disabled = false; "gitea.com".disabled = false; "github".disabled = false; "gitlab".disabled = false; "huggingface".disabled = false; "huggingface datasets".disabled = false; "huggingface spaces".disabled = false; "ollama".disabled = false; "sourcehut".disabled = false; # software wikis "gentoo".disabled = false; "nixos wiki".disabled = false; "arch linux wiki".disabled = false; "free software directory".disabled = false; # IT etc "mankier".disabled = false; "searchcode code".disabled = false; # wikimedia # "wikidata".disabled = false; # "wikibooks".disabled = false; # "wikiquote".disabled = false; # "wikisource".disabled = false; # "wikivoyage".disabled = false; # "wikispecies".disabled = false; # "wikiversity".disabled = false; # "wikicommons".disabled = false; # translate "mozhi".disabled = false; "lingva".disabled = false; "dictzone".disabled = false; "libretranslate".disabled = false; # # scams/don't trusts "bing".disabled = true; "yahoo".disabled = true; "google".disabled = true; }; # Outgoing requests outgoing = { request_timeout = 15.0; max_request_timeout = 25.0; pool_connections = 100; pool_maxsize = 15; useragent_suffix = "me@aethrvmn.gr"; retries = 5; }; # Enabled plugins enabled_plugins = [ "Basic Calculator" "Hash plugin" "Tor check plugin" "Open Access DOI rewrite" "Hostnames plugin" "Unit converter plugin" "Tracker URL remover" ]; }; }; nginx.virtualHosts = { "search.internal" = { locations."/" = { proxyPass = "http://127.0.0.1:4000"; proxyWebsockets = true; }; }; }; }; }