63 lines
1.2 KiB
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;
|
|
};
|
|
};
|
|
}
|