aboutsummaryrefslogtreecommitdiff
path: root/modules/searx/default.nix
blob: e8b3873a09616d00ca894ea19a8476e078676293 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
{ config, pkgs, lib, ... }:
{
  services = {
    searx = {
      enable = true;
      package = pkgs.searxng;

      settings = {
        server = {
          port = 4000;
          bind_address = "127.0.0.1";
          secret_key = "secret_key";
        };

        general = {
          debug = false;
          instance_name = "SearXNG";
          donation_url = false;
          contact_url = false;
          privacypolicy_url = false;
          enable_metrics = false;
          autocomplete = "startpage";
        };

        # Search engines
        engines = lib.mapAttrsToList (name: value: { inherit name; } // value) {
          # main boys
          "brave" = {
            disabled = false;
            weight = 0.7;
          };
          "duckduckgo" = {
            disabled = false;
            weight = 0.7;
          };
          "ecosia" = {
            disabled = false;
            weight = 0.6;
          };
          "mojeek" = {
            disabled = true;
            weight = 0.4;
          };
          "qwant" = {
            disabled = false;
            weight = 0.4;
          };
          "startpage" = {
            disabled = false;
            weight = 1;
          };
          "wiby" = {
            disabled = false;
            weight = 0.4;
          };

          # 
          "openverse".disabled = false;

          # repos
          "bitbucket".disabled = false;
        	"codeberg".disabled = false;
        	"gitea.com".disabled = false;
        	"github".disabled = false;
        	"gitlab".disabled = false;
        	"huggingface".disabled = false;
        	"huggingface datasets".disabled = false;
        	"huggingface spaces".disabled = false;
        	"ollama".disabled = false;
        	"sourcehut".disabled = false;

        	# software wikis
        	"gentoo".disabled = false;
        	"nixos wiki".disabled = false;
        	"arch linux wiki".disabled = false;
        	"free software directory".disabled = false;

        	# IT etc
        	"mankier".disabled = false;
          "searchcode code".disabled = false;

          # translate
          "mozhi".disabled = false;
          "lingva".disabled = false;
          "dictzone".disabled = false;
          "libretranslate".disabled = false;

          # # scams/don't trusts
          "bing".disabled = true;
          "yahoo".disabled = true;
          "google".disabled = true;
        };

        # Outgoing requests
        outgoing = {
          request_timeout = 15.0;
          max_request_timeout = 25.0;
          pool_connections = 100;
          pool_maxsize = 15;
          useragent_suffix = "me@aethrvmn.gr";
          retries = 5;
        };

        # Enabled plugins
        enabled_plugins = [
          "Basic Calculator"
          "Hash plugin"
          "Tor check plugin"
          "Open Access DOI rewrite"
          "Hostnames plugin"
          "Unit converter plugin"
          "Tracker URL remover"
        ];
      };
    };

    nginx.virtualHosts = {
      "search.internal" = {
        locations."/" = {
          proxyPass = "http://127.0.0.1:4000";
          proxyWebsockets = true;
        };
      };
    };
  };
}
Directive (EU) 2019/790, Article 4(3); all rights regarding Text and Data Mining (TDM) are reserved.