[Support] FoxxMD - whoogle-search


Recommended Posts

Application Name: whoogle-search

Application Site: https://github.com/benbusby/whoogle-search

Github Repo: https://github.com/benbusby/whoogle-search

Docker Hub: https://hub.docker.com/r/benbusby/whoogle-search

Template Repo: https://github.com/FoxxMD/unraid-docker-templates

 

Overview

 

whoogle-search is a self-hosted Google search proxy with built in privacy enhancements and protections against tracking and data collection, intended as a replacement for both desktop and mobile. 

 

whoogle-search is in active development! Please check the project page (github) if you have non-docker/unraid related questions

 

Some features:

  • No ads or sponsored content
  • No javascript
  • No cookies
  • No tracking/linking of your personal IP address
  • No AMP links
  • No URL tracking tags (i.e. utm=%s)
  • No referrer header
  • POST request search queries (when possible)
  • View images at full res without site redirect (currently mobile only)
  • Dark mode
  • Randomly generated User Agent
  • Optional location-based searching (i.e. results near <city>)
  • Optional NoJS mode to disable all Javascript in results
  • Configurable "always open links in new tabs"

 

Some screenshots:

 

image.png.a87f752b778f34128eb508143a8c9fd7.png

 

image.thumb.png.57639cafcdf844d4e94781441206fee5.png

 

Usage

 

Minimal setup requires only adding the app through CA

 

Template variables/config in unraid

  • Config - mapping to a folder where user settings, in app, will be persisted
  • Application HTTPS Only - setting to true will make the whoogle-search application enforce https (redirect http to https), inside the container
  • Container Port - the port whoogle-search will start on, inside the container

 

Additional settings such as authentication, proxy, config defaults can be set via environmental variables (Variable config type in unraid template). Refer to the Environmental Variables section in the project's documentation. Use the whoogle variable as the Key in the unraid template with the value as-is.

 

If the variable is for a true/false value then use 1 for true and for false (thanks jmztaylor) EX

  • Key: WHOOGLE_CONFIG_DISABLE
  • Value: 1

 

In App

  • Root Url in the web configuration can be set to the same as the url:port as you use to access the UI if you want post-configuration actions to redirect to the same page. Or configure with your external URL if using whoogle-search behind a reverse proxy.

 

 

Edited by FoxxMD
add additional env info
  • Like 1
Link to comment
1 hour ago, milfer322 said:

Yes, how i can change the web UI to 443? 

Thanks!

There should be a Web UI entry in your container settings. Click Show More Settings (but it shouldn't be hidden). If you don't have it for some reason use Add Path, Port, variable, etc. action at the bottom to add it with Container Port 5000 Host Port 443

 

image.thumb.png.76dc57c26aaffb3869229b70b357c618.png

Link to comment

My apologies I am not too familiar with unraid using a custom network. unraid cannot use port mappings when the network type is not bridge because you have manually setup a different network to attach the container to.

 

You can either use the bridge network and let unraid map the internal port (5000) to the host port (443) on your IP, do your own mapping (externally) somehow, or you can take some step to modify the port whoogle starts on such as:

  • Fork the project and modify Dockerfile to hardcode a specified port in the entrypoint command, then use your own build as the repo
  • Open an issue to request specifying port using an environmental variable in the Dockerfile
Edited by FoxxMD
  • Like 1
Link to comment
  • 2 weeks later...
  • 2 weeks later...
  • 1 month later...
4 hours ago, BadCo. said:

I'm having trouble getting this to work through LS.io letsencrypt reverse proxy, anyone got any tips? What proxy configs are people using?

I'm using this config with a subdomain: 

 

# make sure that your dns has a cname set for whoogle and that your whoogle container is not using a base url
# if whoogle is running in bridge mode and the container is named "whoogle", the below config should work as is
# if not, replace the line "set $upstream_app whoogle;" with "set $upstream_app <containername>;"
# or "set $upstream_app <HOSTIP>;" for host mode, HOSTIP being the IP address of whoogle


server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name whoogle.*;

    include /config/nginx/strong-ssl.conf;

    client_max_body_size 0;

    location / {
        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_app whoogle-search;
        set $upstream_port 5000;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

        proxy_set_header Range $http_range;
        proxy_set_header If-Range $http_if_range;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;

Note that "strong-ssl.conf;" is specific to my setup. Yours should be just 

include /config/nginx/ssl.conf;

Just paste the above in a file and call it whoogle.subdomain.conf and place it in /letsencrypt/nginx/proxy-confs (assuming you're using LSIO's letsencrypt container)

 

Still having some issues in chrome, gets a 522. Works fine in firefox tho, will have to look into that.

Link to comment

Mine is similar to strike but it works with less configuration:

 

server {
	listen 443 ssl http2;
	server_name search.yourDomain.me;
	
	# ssl specific to my machine
	# nothing whoogle specific in here though, same for all subdomain ssl
    include /config/nginx/sub-strong-ssl.conf; 
	
	location / {
        include /config/nginx/proxy.conf; # default proxy conf included in docker-letsencrypt container
        proxy_pass         http://yourHostIp:whooglePort/;
  }
}

 

Link to comment

Thanks for the examples, I'll give them a try.

 

This is what I a, currently using. I have had to change the container port due to a conflict with DashMachine.

 

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name search.mydomain.net;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    location / {
        #enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable the next two lines for ldap auth
        #auth_request /auth;
        #error_page 401 =200 /login;

        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_app whoogle;
        set $upstream_port 8798;
        set $upstream_proto https;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }   
}

 

EDIT: Just seen my mistake, $uppstream_app name is wrong. Hopefully that's the only one.

 

EDIT2: Still doesn't seem to work :(

 

EDIT3: Ok it works, yaaay. See below for final config

 

# make sure that your dns has a cname set for whoogle and that your whoogle container is not using a base url
# if whoogle is running in bridge mode and the container is named "whoogle", the below config should work as is
# if not, replace the line "set $upstream_app whoogle;" with "set $upstream_app <containername>;"
# or "set $upstream_app <HOSTIP>;" for host mode, HOSTIP being the IP address of whoogle


server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name search.hardnet.nz;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    location / {
        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_app whoogle-search;
        set $upstream_port 8798;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

        proxy_set_header Range $http_range;
        proxy_set_header If-Range $http_if_range;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        }
    }

 

Edited by BadCo.
Link to comment
  • 10 months later...

Dear Whoogle,

 

Thanks for this glorious piece of docker. It's a wonderful tool.

 

However, I can no longer get it to work. Everytime I try and search I keep getting hit by google wanting me to accept cookies. And no matter what I choose.. I keep getting the same page. I can not get past it.

 

So atm I am using google.com. The horror.

 

Please advise.

2021-05-17 15_30_34-Window.png

2021-05-17 15_31_14-Window.png

Link to comment
29 minutes ago, FoxxMD said:

@coupas looks like that might be related to issue #311 with this potential workaround to fix it? Either way this definitely an issue with whoogle rather than the unraid template so you'll get more help posting in the github issues for whoogle than here, I think.

 

Thanks a lot. It seem to be getting fixed in a coming update of the docker template.

 

https://github.com/benbusby/whoogle-search/pull/320

Link to comment

Is anyone reverse proxying whoogle with NginxProxyManger? I can hit the domain but the site is blank.

Console gives me this errors:

Loading failed for the <script> with source “https://ajax.cloudflare.com/cdn-cgi/scripts/8g5r2512/cloudflare-static/rocket-loader.min.js”. search.domain.com:1229:1
Loading failed for the <script> with source “https://static.cloudflareinsights.com/beacon.min.js”. search.domain.com:1229:1
Cookie “session” will be soon rejected because it has the “SameSite” attribute set to “None” or an invalid value, without the “secure” attribute. To know more about the “SameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite search.domain.com
Content Security Policy: The page’s settings blocked the loading of a resource at https://ajax.cloudflare.com/cdn-cgi/scripts/8g5r2512/cloudflare-static/rocket-loader.min.js (“script-src”).
Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”). search.domain.com:1229:1
Content Security Policy: The page’s settings blocked the loading of a resource at https://static.cloudflareinsights.com/beacon.min.js (“script-src”).
Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”). utils.js:35:9
Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”). index.js:4010:22
Loading failed for the <script> with source “https://search.domain.com/cdn-cgi/bm/cv/598746589/api.js”. search.domain.com:64:1

 

Link to comment
  • 4 weeks later...

Been using this for a while and am happy with it- thanks for making it

 

I'm not familiar with how Whoogle works, but is there a reason this Docker connects to TOR/odd proxies? I assume it has to do with how Whoogle works but it is querying even when searches are not being made.

 

Traffic log showing connections to newly registered domains: https://i.imgur.com/d9BXYSZ.png

Traffic log showing connections to TOR: https://i.imgur.com/5zV0rlG.png

 

Link to comment
  • 2 weeks later...

@fordbaxter I'm not familiar with TOR usage for whoogle. There is an ENV variable for it but I assumed that if it wasn't turned on explicitly using this variable it wasn't running at all. This issue brings up the fact that your outbound requests won't use TOR but it is still running. You can kill the TOR service from within the container for now (instructions in the issue). If it's a concern I'd recommend bringing it up in that issue or ask the author to implement a way to fully disable the service.

Edited by FoxxMD
Link to comment
  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.