From 8055eb4e918ba82b5328d51cae5c90d89706b3f1 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Mon, 21 Aug 2023 19:02:40 +0000 Subject: [PATCH] Add Whoogle Search (#1027) --- apps/whoogle/config.json | 16 +++++++++++ apps/whoogle/docker-compose.yml | 38 +++++++++++++++++++++++++++ apps/whoogle/metadata/description.md | 27 +++++++++++++++++++ apps/whoogle/metadata/logo.jpg | Bin 0 -> 6232 bytes 4 files changed, 81 insertions(+) create mode 100644 apps/whoogle/config.json create mode 100644 apps/whoogle/docker-compose.yml create mode 100644 apps/whoogle/metadata/description.md create mode 100644 apps/whoogle/metadata/logo.jpg diff --git a/apps/whoogle/config.json b/apps/whoogle/config.json new file mode 100644 index 00000000..11863fc4 --- /dev/null +++ b/apps/whoogle/config.json @@ -0,0 +1,16 @@ +{ + "$schema": "../schema.json", + "name": "Whoogle Search", + "available": true, + "exposable": true, + "port": 8255, + "id": "whoogle", + "tipi_version": 1, + "version": "0.8.2", + "categories": ["social"], + "description": "Get Google search results, but without any ads, JavaScript, AMP links, cookies, or IP address tracking.", + "short_desc": "A self-hosted, ad-free, privacy-respecting metasearch engine.", + "author": "Ben Busby", + "source": "https://github.com/benbusby/whoogle-search", + "form_fields": [] +} diff --git a/apps/whoogle/docker-compose.yml b/apps/whoogle/docker-compose.yml new file mode 100644 index 00000000..fda72121 --- /dev/null +++ b/apps/whoogle/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.7" + +services: + whoogle: + container_name: whoogle + image: benbusby/whoogle-search:0.8.2 + restart: unless-stopped + networks: + - tipi_main_network + ports: + - ${APP_PORT}:8255 + environment: + EXPOSE_PORT: 8255 + labels: + # Main + traefik.enable: true + traefik.http.middlewares.whoogle-web-redirect.redirectscheme.scheme: https + traefik.http.services.whoogle.loadbalancer.server.port: 8255 + # Web + traefik.http.routers.whoogle-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.whoogle-insecure.entrypoints: web + traefik.http.routers.whoogle-insecure.service: whoogle + traefik.http.routers.whoogle-insecure.middlewares: whoogle-web-redirect + # Websecure + traefik.http.routers.whoogle.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.whoogle.entrypoints: websecure + traefik.http.routers.whoogle.service: whoogle + traefik.http.routers.whoogle.tls.certresolver: myresolver + # Local domain + traefik.http.routers.whoogle-local-insecure.rule: Host(`whoogle.${LOCAL_DOMAIN}`) + traefik.http.routers.whoogle-local-insecure.entrypoints: web + traefik.http.routers.whoogle-local-insecure.service: whoogle + traefik.http.routers.whoogle-local-insecure.middlewares: whoogle-web-redirect + # Local domain secure + traefik.http.routers.whoogle-local.rule: Host(`whoogle.${LOCAL_DOMAIN}`) + traefik.http.routers.whoogle-local.entrypoints: websecure + traefik.http.routers.whoogle-local.service: whoogle + traefik.http.routers.whoogle-local.tls: true diff --git a/apps/whoogle/metadata/description.md b/apps/whoogle/metadata/description.md new file mode 100644 index 00000000..03a09e49 --- /dev/null +++ b/apps/whoogle/metadata/description.md @@ -0,0 +1,27 @@ +Get Google search results, but without any ads, JavaScript, AMP links, cookies, or IP address tracking. Easily deployable in one click as a Docker app, and customizable with a single config file. Quick and simple to implement as a primary search engine replacement on both desktop and mobile. + +## 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 +- Tor and HTTP/SOCKS proxy support +- Autocomplete/search suggestions +- POST request search and suggestion queries (when possible) +- View images at full res without site redirect (currently mobile only) +- Light/Dark/System theme modes (with support for [custom CSS theming](https://github.com/benbusby/whoogle-search/wiki/User-Contributed-CSS-Themes)) +- Randomly generated User Agent +- Easy to install/deploy +- DDG-style bang (i.e. `! `) searches +- Optional location-based searching (i.e. results near \) +- Optional NoJS mode to view search results in a separate window with JavaScript blocked + +*No third party JavaScript. Whoogle can be used with JavaScript disabled, but if enabled, uses JavaScript for things like presenting search suggestions. + +**No third party cookies. Whoogle uses server side cookies (sessions) to store non-sensitive configuration settings such as theme, language, etc. Just like with JavaScript, cookies can be disabled and not affect Whoogle's search functionality. + +***If deployed to a remote server, or configured to send requests through a VPN, Tor, proxy, etc. + diff --git a/apps/whoogle/metadata/logo.jpg b/apps/whoogle/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b2ecd7b08cb35a872f500ab909d49740877c1332 GIT binary patch literal 6232 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 literal 0 HcmV?d00001