V
Tried it, kinda liked it, but then read a lot of shady stuff about them not being as privacy-focused as they’re made out to be.
I might give Arc a go, not sure how good/popular it is though. But I think anything other than Safari will be a compromise because of the Apple Pay/Touch ID/Face ID integration.
I replied to another comment on here saying that I’d tried this once before, via a Docker container, but just wasn’t getting any results back (kept getting timeouts from all the search engines).
I’ve just revisited it, and still get the timeouts. Reckon you’re able to help me troubleshoot it?
Below are the logs from Portainer:
File "/usr/local/searxng/searx/network/__init__.py", line 165, in get
return request('get', url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 98, in request
raise httpx.TimeoutException('Timeout', request=None) from e
httpx.TimeoutException: Timeout
2023-08-06 09:58:13,651 ERROR:searx.engines.soundcloud: Fail to initialize
Traceback (most recent call last):
File "/usr/local/searxng/searx/network/__init__.py", line 96, in request
return future.result(timeout)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/concurrent/futures/_base.py", line 458, in result
raise TimeoutError()
TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/searxng/searx/search/processors/abstract.py", line 75, in initialize
self.engine.init(get_engine_from_settings(self.engine_name))
File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
guest_client_id = get_client_id()
^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/engines/soundcloud.py", line 45, in get_client_id
response = http_get("https://soundcloud.com")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 165, in get
return request('get', url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 98, in request
raise httpx.TimeoutException('Timeout', request=None) from e
httpx.TimeoutException: Timeout
2023-08-06 09:58:13,654 ERROR:searx.engines.soundcloud: Fail to initialize
Traceback (most recent call last):
File "/usr/local/searxng/searx/network/__init__.py", line 96, in request
return future.result(timeout)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/concurrent/futures/_base.py", line 458, in result
raise TimeoutError()
TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/searxng/searx/search/processors/abstract.py", line 75, in initialize
self.engine.init(get_engine_from_settings(self.engine_name))
File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
guest_client_id = get_client_id()
^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/engines/soundcloud.py", line 45, in get_client_id
response = http_get("https://soundcloud.com")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 165, in get
return request('get', url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 98, in request
raise httpx.TimeoutException('Timeout', request=None) from e
httpx.TimeoutException: Timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.wikidata: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.duckduckgo: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.google: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.qwant: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.startpage: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.wikibooks: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.wikiquote: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.wikisource: engine timeout
2023-08-06 10:02:05,025 ERROR:searx.engines.wikipecies: engine timeout
2023-08-06 10:02:05,025 ERROR:searx.engines.wikiversity: engine timeout
2023-08-06 10:02:05,025 ERROR:searx.engines.wikivoyage: engine timeout
2023-08-06 10:02:05,025 ERROR:searx.engines.brave: engine timeout
2023-08-06 10:02:05,481 WARNING:searx.engines.wikidata: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,481 ERROR:searx.engines.wikidata: HTTP requests timeout (search duration : 6.457878380082548 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,482 WARNING:searx.engines.wikisource: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,484 ERROR:searx.engines.wikisource: HTTP requests timeout (search duration : 6.460748491808772 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,485 WARNING:searx.engines.brave: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,485 ERROR:searx.engines.brave: HTTP requests timeout (search duration : 6.461546086706221 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,487 WARNING:searx.engines.google: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,487 ERROR:searx.engines.google: HTTP requests timeout (search duration : 6.463769535068423 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,489 WARNING:searx.engines.wikiversity: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,489 ERROR:searx.engines.wikiversity: HTTP requests timeout (search duration : 6.466003180015832 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,490 WARNING:searx.engines.wikivoyage: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,490 ERROR:searx.engines.wikivoyage: HTTP requests timeout (search duration : 6.466597221791744 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,490 WARNING:searx.engines.qwant: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,490 ERROR:searx.engines.qwant: HTTP requests timeout (search duration : 6.4669976509176195 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,491 WARNING:searx.engines.wikibooks: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,491 ERROR:searx.engines.wikibooks: HTTP requests timeout (search duration : 6.4674198678694665 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,491 WARNING:searx.engines.wikiquote: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,492 WARNING:searx.engines.wikipecies: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,492 ERROR:searx.engines.wikiquote: HTTP requests timeout (search duration : 6.468321242835373 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,492 ERROR:searx.engines.wikipecies: HTTP requests timeout (search duration : 6.468797960784286 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,496 WARNING:searx.engines.duckduckgo: ErrorContext('searx/engines/duckduckgo.py', 98, 'res = get(query_url, headers=headers)', 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,497 ERROR:searx.engines.duckduckgo: HTTP requests timeout (search duration : 6.47349306801334 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,511 WARNING:searx.engines.startpage: ErrorContext('searx/engines/startpage.py', 214, 'resp = get(get_sc_url, headers=headers)', 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,511 ERROR:searx.engines.startpage: HTTP requests timeout (search duration : 6.487425099126995 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:04:27,475 ERROR:searx.engines.duckduckgo: engine timeout
2023-08-06 10:04:27,770 WARNING:searx.engines.duckduckgo: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:04:27,771 ERROR:searx.engines.duckduckgo: HTTP requests timeout (search duration : 3.2968566291965544 s, timeout: 3.0 s) : TimeoutException
2023-08-06 10:04:50,094 ERROR:searx.engines.duckduckgo: engine timeout
2023-08-06 10:04:50,187 WARNING:searx.engines.duckduckgo: ErrorContext('searx/engines/duckduckgo.py', 98, 'res = get(query_url, headers=headers)', 'httpx.ConnectTimeout', None, (None, None, 'duckduckgo.com')) False
2023-08-06 10:04:50,187 ERROR:searx.engines.duckduckgo: HTTP requests timeout (search duration : 3.0933595369569957 s, timeout: 3.0 s) : ConnectTimeout
The above is a simple search for “best privacy focused search engines 2023”, followed by the same search again but using the ddg! bang in front of it.
I can post my docker-compose if it helps?
You’re all awesome. So much feedback for me to work with.
I’d say the vast majority are recommending Bitwarden (or Vaultwarden should I want to self host), with lots of shoutouts for 1Password as well. Honourable mentions for KeePass as well as a few others.
I’ll continue to run Bitwarden in parallel to 1Password for a little while longer to see if I prefer one over the other. I’ll definitely look into self hosting it as well, although I don’t currently have a domain name so would either have to get one or do the slightly more convoluted method of getting self-signed certificates.
Thanks all for taking the time to indulge me — very much appreciated.
Boo, Google! Haha j/k, each to their own 🙂
1Password has been one of my go-to apps for years now, so I’m clearly happy to pay the $80 a year or whatever it is (I’m a Brit but I think it’s around that price). But it’s very good to know that I can get the exact same (more or less) functionality in Bitwarden for $10 a year. And I have the option to self host on my Docker stack on my NAS should the mood take me.
I absolutely wholeheartedly agree about Watchtower — that’s a nice little piece of functionality. I saw Bitwarden can check if your passwords have been involved in a data breach, but nowhere near as many little add-ins as Watchtower. It feels like a credit score for your passwords 🙂
My 100-search trial expired this week and I was literally planning on subscribing later tonight. This has made me think twice.
But it takes me back to why I tried Kagi in the first place: What else can I use that respects privacy?
I don’t think any of them do completely. DuckDuckGo uses Bing, so is Microsoft; Google is… well, Google; Brave is apparently really shady; I’ve never thought much of the results from Bing directly. Startpage seemed ok but apparently uses Google.
What else?
I also like something to be integrated into the browser. As a Mac user, I can’t add new search engines to Safari (and have actually switched to Orion, but may now switch to Firefox or back to Safari).