Compare commits

...

8 commits

5 changed files with 76 additions and 2 deletions

View file

@ -158,7 +158,7 @@ jobs:
-d "$body" \
https://ntfy.sh/splitleaf
- name: Notify failure
if: needs.await-deploy.result == 'failure'
if: needs.await-deploy.result == 'failure' || needs.await-deploy.result == 'skipped'
env:
SHA: ${{ github.sha }}
COMMIT_MSG: ${{ github.event.head_commit.message }}

View file

@ -71,6 +71,11 @@
enable = true;
domain = "home.${config.custom.networking.overlay.domain}";
};
searxng = {
enable = true;
domain = "search.${config.custom.networking.overlay.domain}";
};
};
};
}

View file

@ -40,6 +40,16 @@ in
|> lib.map (glance: glance.domain)
|> lib.head;
};
searchEngine = lib.mkOption {
type = lib.types.nonEmptyStr;
default =
allHosts
|> lib.attrValues
|> lib.map (host: host.config.custom.web-services.searxng)
|> lib.filter (searxng: searxng.enable)
|> lib.map (searxng: searxng.domain)
|> lib.head;
};
extensions = lib.mkOption {
type = lib.types.attrsOf (
lib.types.submodule (
@ -115,6 +125,16 @@ in
};
extraConfig = lib.readFile "${inputs.betterfox}/user.js";
search = {
force = true;
default = "searxng";
privateDefault = "searxng";
engines.searxng = {
name = "searxng";
urls = lib.singleton { template = "https://${cfg.searchEngine}/search?q={searchTerms}"; };
};
};
};
policies.ExtensionSettings =

View file

@ -87,7 +87,7 @@ in
widgets =
lib.singleton {
type = "search";
search-engine = "google";
search-engine = "https://search.splitleaf.de/search?q={QUERY}";
autofocus = true;
}
++ applicationSites

View file

@ -0,0 +1,49 @@
{ config, lib, ... }:
let
cfg = config.custom.web-services.searxng;
in
{
options.custom.web-services.searxng = {
enable = lib.mkEnableOption "";
domain = lib.mkOption {
type = lib.types.nonEmptyStr;
default = "";
};
port = lib.mkOption {
type = lib.types.port;
default = 27916;
};
};
config = lib.mkIf cfg.enable {
services.searx = {
enable = true;
settings = {
server = {
inherit (cfg) port;
secret_key = "unnecessary";
};
ui.center_alignment = true;
plugins = {
"searx.plugins.calculator.SXNGPlugin".active = true;
"searx.plugins.infinite_scroll.SXNGPlugin".active = true;
"searx.plugins.self_info.SXNGPlugin".active = true;
};
search = {
autocomplete = "duckduckgo";
favicon_resolver = "duckduckgo";
};
hostnames.remove = [ ''(.*\.)?nixos.wiki'' ];
};
};
custom = {
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;
meta.sites.${cfg.domain} = {
title = "SearXNG";
icon = "sh:searxng";
};
};
};
}