{ mach-nix, lib, config, pkgs, ... }: let domain = "gugol.giugl.io"; network = import ./network.nix; in { services = { redis.servers."searx" = { enable = true; port = 4456; }; searx = { enable = true; package = pkgs.unstablePkgs.searxng; environmentFile = /secrets/searx/env; settings = { server = { secret_key = "@SEARX_SECRET_KEY@"; port = 4455; }; general = { instance_name = "Pepe's Gugol"; contact_url = "mailto:gugol@depasquale.giugl.io"; enable_metrics = false; }; search = { safe_search = 0; autocomplete = "qwant"; prefer_configured_language = false; }; ui = { infinite_scroll = true; query_in_title = true; results_on_new_tab = true; theme_args.simple_style = "dark"; }; redis.url = "redis://127.0.0.1:${toString config.services.redis.servers."searx".port}"; engines = [ { name = "google"; disabled = false; } { name = "bing"; disabled = false; } { name = "qwant"; disabled = false; } { name = "duckduckgo"; disabled = false; } { name = "yahoo"; disabled = false; } { name = "wikibooks"; disabled = false; } { name = "wikidata"; disabled = false; } { name = "wikipedia"; disabled = false; } { name = "wikiquote"; disabled = false; } { name = "wikisource"; disabled = false; } { name = "wikiversity"; disabled = false; } { name = "wikivoyage"; disabled = false; } ]; }; }; nginx.virtualHosts.${domain} = { forceSSL = true; enableACME = true; locations."/" = { proxyPass = "http://127.0.0.1:${toString config.services.searx.settings.server.port}"; }; }; }; networking.extraHosts = '' ${network.architect-lan} ${domain} ${network.architect-wg} ${domain} ${network.architect-ts} ${domain} ''; }