server-configs/machines/gerd/services/searx.nix

63 lines
1.2 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
svc_domain = "searx.${config.mine.shared.settings.domain}";
port = 7378;
in
{
services.searx = {
enable = true;
runInUwsgi = true;
redisCreateLocally = true;
environmentFile = config.age.secrets.searx-env.path;
uwsgiConfig.http = "127.0.0.1:${builtins.toString port}";
settings = {
general.debug = false;
server = {
base_url = "https://${svc_domain}";
secret_key = "@SECRET_KEY@";
};
search.formats = [
"html"
"json"
"rss"
"csv"
];
};
};
# nginx
services.nginx.virtualHosts."${svc_domain}" = config.mine.shared.lib.authelia.mkProtectedWebsite {
forceSSL = true;
enableACME = true;
locations."/" = config.mine.shared.lib.authelia.mkProtectedLocation {
proxyPass = "http://localhost:${builtins.toString port}";
};
};
# meta
mine.shared.meta.searx = {
name = "searXNG";
description = "We host our own searXNG, use it to search the web!";
url = "https://${svc_domain}";
package =
let
pkg = config.services.searx.package;
in
{
name = pkg.pname;
version = pkg.version;
meta = pkg.meta;
};
};
}