summaryrefslogtreecommitdiff
path: root/config/services/web/searx/default.nix
blob: 9810ab45b2096af9f2d874185743ccd553d5d680 (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
{
  config,
  # lib,
  pkgs,
  ...
}:

let
  # cfg = config.services.searx;
  redirectTo = "searx.tiekoetter.com";
  preferences = "eJx1WcuS67gN_Zp4o5quO7mTpLLwKpXMD8xeRZGwhCuKUPNhW_31AakXaboX7bYOKBAEQLwshYeeLIK79mDACn3RwvRB9HAVwdNFkxQarmAuN3FHSaa14EjfwV57ol7DZQI_kLr--d-_Lk7cwIGwcrj-uPgBJrg6nGZexC8F7V3L7xt4tF501_8J7eCiCE-OJPjxg2x_WV9rnV94cyXseJFgPNhWaOzNxN-39z8D2KVF03r0vPQvG-CyihD3kuvxltaBBulX8kB-hMVd7zhdgtXtjewkvEfTX2cL3i8XhU50GlQLpkfDuvn5zx8b03ZT09_-_p8DbO6ogFzbrv-Z9O9e9G3rSKLQzQQKBYNC3oLJFrFen8IoiyLnKvTMWzYaTXg2s5Ajm4JZo480Y4Rr4pZ4h7a9oYbEyDhmwXpND_PYTGgt2eMlwWZTYns0-CTXPHDEnW49Sv4-xY34uWOZpJjmtp2CQ5kQVCGXMQHN-kbxZoRHgbd9sw41xr_s1B3rueDFz7UCO_RyCB5KqAtyBL_znruCj1fY96dSaAbDPuUgEzBiUetsGolgJDCWrPMhpfxQ-W5ygNtI0eDEjmwjYsk5C7f8ZcYe6o7s0ZkkC8wvj7WqIhgNdphNAXyxex86V-C88OjO_RXcURjP5sr4KNU3Cm5o0CMZl--riJVlmyF0m8JY5kVqqh0Z-BSozp2icyjhC7dUrPr411N9mIxWGTKjPUDEDc59xMx3vJnEzC_wZ5Rkol84R4ucq_hiwgKFvH6ZyPANgXPV78_z-01ZiudJp2bdKD8IP3E0ymS-aZSjzQEL0Di6-Yew0Ci0HC9i5Ni4WDQjivye3JYl01kP-DVwRMoRg8GdFu05QIndFvxwGmZ9aCSp7EDxqQPbn2uA3ZSm_ZlIWRAq3zDF41xRK9JI9w6tzLjhhVtuWGXWDZ-1WJqJ-AbkRI6mYGPki_ki32EQnRXxYzvEIKKLrhuuQLyb6Zu0zMR9IO2U7XDpAXUzk_OHlEPoOU73NyH3FRnSRFd24N0bkuMAe0RXnFR3ahOnPuT-gUZkR2QntXznlnzBJy55oPuFbqCT38j-Jpw7A5SGaVrY6NMU4u2NYrwkjHVFcBzFvqFFLXxHi5w5T74hI1vBLk30CIeZRF-_baRMSNbUvQgEmjrn4cPuWpuU2b-BF3IWxyPGiMkXqtEccU70yTEoqPNeTPQ1YL7D9Jg6nQMm-hH_Zco1834RzCLEKe8k-JrC7l-kFgd5VCetxbQnp5QN-J6f_nEG9p02h44DhdiCa0k_lHVKGmFWA2R2jxDzoUzPa1ZHt2eyWXWQM5-5QuHiZYuJXA7wdQKXh_05BsnsXDM-RcdXsbrTO6G6wHwwTnj3XYJ0zEbRJNCsXM4y42QWuilum0m6zHsZ8Rm4Sst1kYBaos8HJ7FiXQTKqLNC71-tj2KFQmo6TmIuz6AWuH6wJ1NL3vN94CN6gixsrvlwWhz6Ikw6mFHsyfLYzFFPRS2UgFrWFa5kXeEHSM5IZ-5HJ4NzH_PClfR-UaRQavnYw8Oeh2b8bSANFe6APZ_ruMZJpgubG8nFmmFmuQqxd_CN6Jxppiz_0riwP3IwG-Pd3p2YS3ZUnCHtGmN22EcmLIQolJSj26F9EW2DcZxLXFZuLYJDfukWCwUfuvw-H8hRNgnUXBzE-5ot40of8ujxwK64trHg6YhG9woW20fgM1DpJRF0FKys0RlkiurfwKeBGI4Cp1iS12CxfE0mLjncaXkx5oP0zXJg0_NQFm0o_ReZYu20cCXEhU3jLfcNmrOsysm___z5r-dpThUUmPyufJnoGxk7-gUw1kjtVhteqDSVDjNq8uceRtzjNc7CfwRqfitcsFuhOkCEbulh2jPWDGBf_CilRt5_jLX8A7rcxYQsLBCfa2Fs4JyVc3yQVQbHzKD0xJEMB93GLYbMMkF-x8jHQjUe_CVb37mUTc3gJv1DaD3wOU22e_SKiXuAwie8tx-Y2Y6T1b3whAR81F1cguuOLMGFujkBnnXAegm4Z9vbM_9H1o3NY__RU5ZxHBgnLdc93MCfMvIhgCs_rhnWBvXoFKxP7RDlp5ZCDkvDzexLlxwbpZfC87aYwst1kKiK1AZPyIt3kzZjM9yDji_FJtYvqZTshNurzPB8pG721B0Jm8ry0oML-MW-_fTMl_7jx485b2X4gqapS1amswTmq7jnX2KOxVcR3x_IAZce7i34JugfpDpnHaTC-h778pQJKNdw9TUaNL8K0W5cV3Xsxe-w8vUDrdtK6jlsFO68QW_a043wHZNyTx2ez5LxitR8N7xiu-EFVyvWsHJytaDjuKtQgnC-o6I4mi3eOeA8XtSVwW9qvoxY132kOA27vA2_hyHcc-4JqPmucB1d02hvCGk8VxzwxGtmopNmGeDlnbXc8qREEXPR3Ci1ajkYSyhDWLrgPhaooFqCnVAdaCe8eHKU7AugFpfBcq1YqF5Vjlx8cGM9iDnRN-KetFrik1YIEgx1XhgMRcqW-sdn_vyMga7Q9xhGKJLJSF8Tr7r78s4aleL7GeYPqJb_JFXin6RUxuUjk3lYisp0LVpTL17Xsgy_q2ZPYh3aMmKhOXQvVc2M8hfn-Kyxc57k6IyYM2igGW9Lk0hZVhO9wVs82JFe4M0YjkG5DQL2WTw3ocUcep2Y8Wfcwu5pSAxTGpiZ2KWmbMmOsA6QiznvE-8vZec-a3sZx9Y1QUQLBckQK_-yNDpnfd9MDl9CYEYph06xTdsHP-cM69uJVZpCsVIyR0TDNkYKubEzbHew2MLDUQgXVSzHYlJkvhm_HGSOpQN3N_WK2Pc7bwH8FF1k7-XjWKsTS95HBaNeRiLslnIkrmVvmh67-dwYOg6mYS-gwgw2uGPWcTZ0ZZam5GWHb6S26nSw45eOWQd2MXc9XG4HpNAysHZorf_1rY3ROKV7rmBjd7Hu0soB5JiCDvqWSxYW3ydnjyra2MUncp57iHUeL9r1958HV4KJj00TwTb-LGO5TWEeF-4_WZPX_wOTTg3n";
in
{
  imports = [
    ./engines.nix
    ./limiter.nix
  ];

  services.nginx.virtualHosts.searx = {
    serverName = "searx.${config.networking.domain}";
    forceSSL = true;
    enableACME = true;
    extraConfig = ''
      rewrite ^/static(.*) https://${redirectTo}/static$1 permanent;
      rewrite ^/search(.*) https://${redirectTo}/search?preferences=${preferences}&$1 permanent;
      rewrite ^/(.*) https://${redirectTo}/search?preferences=${preferences}&$1;
    '';
  };

  # services.nginx.virtualHosts."searx.aristote.fr" = lib.mkIf (cfg.enable && cfg.configureNginx) {
  #   locations."/" = {
  #     extraConfig = ''
  #       proxy_set_header Host            $host;
  #       proxy_set_header Connection      $http_connection;
  #       proxy_set_header X-Real-IP       $remote_addr;
  #       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  #       proxy_set_header X-Scheme        $scheme;
  #       # proxy_set_header X-Script-Name   /;
  #     '';
  #   };
  #   forceSSL = true;
  #   enableACME = true;
  # };

  services.searx = {
    # enable = true;
    package = pkgs.searxng;

    configureNginx = true;
    domain = "searx.aristote.fr";

    configureUwsgi = true;
    uwsgiConfig = {
      cache2 = "name=searxcache,items=2000,blocks=2000,blocksize=4096,bitmap=1";
    };

    environmentFile = "/etc/searx/secrets";
    settings = {
      use_default_settings = true;
      general = {
        debug = true;
        contact_url = "mailto:quentin@${config.networking.domain}";
        enable_stats = false;
      };
      search = {
        autocomplete = "wikipedia";
        default_lang = "all";
        formats = [
          "html"
          "json"
        ];
      };
      server = {
        secret_key = "@SECRET_KEY@";
        image_proxy = true;
        http_protocol_version = "1.0";
        method = "GET";
      };
      ui = {
        theme_args = {
          oscar_style = "pointhi";
        };
      };
      enabled_plugins = [
        "Open Access DOI rewrite"
        "Hash plugin"
        "HTTPS rewrite"
        "Self Informations"
        "Search on category select"
        "Tracker URL remover"
        "Vim-like hotkeys"
      ];
    };
  };

  systemd.services = {
    # searx-init.personal.monitor = true;
    # uwsgi.personal.monitor = true;
  };
}