From e7d656141aba779e747316612be8771ee5f08c08 Mon Sep 17 00:00:00 2001 From: sora-ext Date: Tue, 12 May 2026 17:44:59 +0200 Subject: [PATCH] Update modules/server/containers/apps/searxng.nix --- modules/server/containers/apps/searxng.nix | 93 +++++++++++++++++++++- 1 file changed, 91 insertions(+), 2 deletions(-) diff --git a/modules/server/containers/apps/searxng.nix b/modules/server/containers/apps/searxng.nix index 6d83f94..ec2b09b 100644 --- a/modules/server/containers/apps/searxng.nix +++ b/modules/server/containers/apps/searxng.nix @@ -1,3 +1,92 @@ -{...}:{ - +{ config, containerCfg, pkgs, lib, builder, name,... }: +let + version= "latest"; + serverCfg = config.syscfg.server; + settings = pkgs.writeText"settings.yml" (pkgs.lib.generators.toYAML {}{ + use_default_settings = true; + brand = { + issue_url = ""; + docs_url = ""; + public_instances = ""; + wiki_url = ""; + custom = { + links = { + "Home" = "https://${serverCfg.hostDomain}"; + # "Status" = "https://status.${serverCfg.hostDomain}"; + }; + }; + pwa_colors = { + theme_color_light = "${serverCfg.colorScheme.palette.base0C}"; + background_color_light = "${serverCfg.colorScheme.palette.base07}"; + theme_color_dark = "${serverCfg.colorScheme.palette.base0C}"; + background_color_dark = "${serverCfg.colorScheme.palette.base02}"; + theme_color_black = "${serverCfg.colorScheme.palette.base0C}"; + background_color_black = "${serverCfg.colorScheme.palette.base01}"; + }; + }; + general = { + debug = false; + instance_name = if containerCfg.extra ? instanceName then containerCfg.extra.instanceName else "SearXNG"; + privacypolicy_url = false; + donation_url = false; + contact_url = false; + enable_metrics = false; + }; + search = { + safe_search = 0; + autocomplete = if containerCfg.extra ? autocomplete then containerCfg.extra.autocomplete else ""; + languages = [ "all" "en" "en-US" "ja" "de-CH" "fr-CH" "nb" ]; + }; + server = { + # secret_key = ""; SET BY ENV VAR + }; + ui = { + default_locale = if containerCfg.extra ? defaultLocale then containerCfg.extra.defaultLocale else "en"; + # query_in_title = "true"; + #default_theme = "custom"; + custom_css = "footer { display: none !important; }"; + }; + # categories_as_tabs = { + # general = {}; + # images ={}; + # videos = {}; + # news = {}; + # files = {}; + # }; + plugins = { + "searx.plugins.infinite_scroll.SXNGPlugin".active = true; + "searx.plugins.tracker_url_remover.SXNGPlugin".active = true; + }; + }); +in { + sops = true; +# paths = [{ +# path="${serverCfg.dataPath}/searxng/"; +# mode = "0444"; +# }]; + + containers = { + server = builder.mkContainer { + subdomain = containerCfg.subdomain; + image = "searxng/searxng:${version}"; + port = 8080; + secret = name; + extraEnv = { + SEARXNG_BASE_URL = "https://${containerCfg.subdomain}.${serverCfg.hostDomain}"; + SEARXNG_PORT = "8080"; + SEARXNG_BIND_ADDRESS = "[::]"; + SEARXNG_PUBLIC_INSTANCE = "false"; + SEARXNG_SETTINGS_PATH = "/etc/searxng/settings.yml"; + #SEARXNG_VALKEY_URL = "valkey://user:password@${builder.host}:6379/0}"; + }; + overrides = { + cmd = [ ]; + volumes = [ + "${settings}:/etc/searxng/settings.yml" + # "/path/to/your/logo.png:/usr/local/searxng/searx/static/themes/simple/img/searxng.png + # "${serverCfg.dataPath}/searxng:/var/cache/searxng/" + ]; + }; + }; + }; } \ No newline at end of file