#+SETUPFILE: ../org-templates/level-1.org #+TITLE: 4get guide * About 4get :PROPERTIES: :CUSTOM_ID: about :END: 4get is a meta search engine similar to searxng. Its faster, less resource intense, and more reliable than searxng. *This guide is made for peeps using 4get with lighttpd+freebsd*. Those using a more sane setup should just check out [[https://git.lolcat.ca/lolcat/4get/src/branch/master/docs/][the 4getdocs]]. * Installing 4get :PROPERTIES: :CUSTOM_ID: installing :END: First install a few packages. Replace =84= with whatever php version your using. #+begin_src shell pkp install lighttpd curl git php84 php84-curl php84-fileinfo php84-filter \ php84-mbstring php84-pecl-APCu php84-pecl-imagick php84-sodium php84-zlib #+end_src Next cd into =/usr/local/www= or wherever you keep your website data and clone the repo with =git clone --depth 1 https://git.lolcat.ca/lolcat/4get = Now that you have it downloaded check out =data/config.php= and change it to your liking. It's not my job to tell you how you want your 4get instance configured (: * Setting up lighttpd :PROPERTIES: :CUSTOM_ID: lighttpd :END: If your reading this you likely already used lighttpd since there is no other reason you would pick lighttpd out of all the other web servers rofl. Well anyways here is a basic config for 4get to get you started. #+begin_src server.modules += ("mod_cgi", "mod_rewrite", "mod_fastcgi") server.name = "" server.document-root = "/usr/local/www/" index-file.names = ("index.php") cgi.execute-x-only = "disable" cgi.assign = (".php" => "/usr/local/bin/php-cgi") fastcgi.server = ( ".php" => ( "localhost" => ( "host" => "127.0.0.1", "port" => 9123 ) ) ) url.rewrite-once = ( "^(.*)/$" => "$1/" ) url.rewrite-if-not-file = ( "^([^?]*)(\?.*)?$" => "$1.php$2" ) #+end_src Start lighttpd with =service lighttpd enable= and =service lighttpd start= *btw in freebsd =service lighttpd restart= doesn't work so instead you have to kill it with something like htop.* To prevent those annoying php warnings from showing up put these in =/usr/local/etc/php.ini= #+begin_src error_reporting = E_ALL & ~E_DEPRECATED display_errors = On #+end_src * Tor proxy :PROPERTIES: :CUSTOM_ID: tor :END: Using a proxy is likely something you will want to do. Meta search engines tend to get IP banned and all of that funky stuff. ** torrc :PROPERTIES: :CUSTOM_ID: torrc :END: To use tor as your proxy add these lines to =/usr/local/etc/tor/torrc= #+begin_src SOCKSPort 127.0.0.1:9050 DNSPort 53 AutomapHostsOnResolve 1 #+end_src The reason to also use torDNS is that if you don't you will get DNS leaks. ** Tor service :PROPERTIES: :CUSTOM_ID: service :END: For tor to be able to create a DNS server in freebsd add this to =/etc/rc.conf= #+begin_src tor_setuid="YES" #+end_src To use tor DNS change the content of =/etc/resolv.conf= to =nameserver 127.0.0.1= Run =service tor enable= and =service tor start= to get it going To config 4get to use tor edit =<4get directory>/data/config.php= and set all the =const PROXY_<...>= to ="onion"= #+begin_src php ... const PROXY_DDG = "onion"; // duckduckgo const PROXY_BRAVE = "onion"; const PROXY_FB = "onion"; // facebook ... #+end_src ** Freebsd pkg issue :PROPERTIES: :CUSTOM_ID: pkg :END: Freebsd pkg doesn't like torDNS. To fix that run =mkdir -p /usr/local/etc/pkg/repos= then =cp /etc/pkg/FreeBSD.conf /usr/local/etc/pkg/repos/= Now change =/usr/local/etc/pkg/repos/FreeBSD.conf= to something like this: #+begin_src FreeBSD: { url: "https://pkg.FreeBSD.org/${ABI}/quarterly", mirror_type: "none", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", enabled: yes } #+end_src