{ 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; }; }