DeGoogling My Life, Part 1.
Most of us are really deep in the Google ecosystem. It's hard not to be. There's very few good alternatives out there. I've always been big on privacy so I set up a fun little challenge for myself. Every week, I'll post a new blog about my progress and drop short tutorials on how you can follow along. This week, we're ditching Search and Youtube (sort of). I'll be leaving an honest review after the whole journey. A little disclaimer though. This blog is intended for technical people that know their way around the Linux command line. If you're a complete beginner, you might have some trouble following along.
I've tried multiple search engines in the past, and none of them come close to Google Search. Be it DuckDuckGo, or Brave Search. There are no good enough alternatives. So I decided to use Whoogle. It's a privacy respecting frontend for Google Search. And as per their readme, you can get Google search results, but without any ads, JavaScript, AMP links, cookies, or IP address tracking. That sounds pretty neat. It's self hosteable, so you know that *you* are in charge of your data. I've set up a little VM for this purpose, but you can use old computers (or even a phone!) if you have any lying around.
We're going to use Docker for this one. Simply pull the repo and run as follows:
docker pull benbusby/whoogle-search
docker run --publish 5000:5000 --detach --name whoogle-search benbusby/whoogle-search:latest
Next we need to figure out the IP address of our instance. If you're hosting it on your computer, it should very simply be, http://127.0.0.1:5000/
. If you're hosting it on a separate computer inside your house, you need to figure out the private IP address of said computer and open Whoogle with the port 5000 (in our case). And if you'd like for the website to be accessible when you're not at home, you'll need to do a bit of port forwarding to get everything running.
I'd recommend some additional configuration and fiddling around as well to make your experience better.
This section is similar to search in that there's no nice independent alternatives. In fact, it's much worse. There are platforms like PeerTube and Odysee. Although I will try to use them more often now, there's no competing with the youtube library.
Invidious is another privacy respecting frontend that works like Whoogle. It is also self-hosteable. Which means that your data is truly under your control. Another issue people often encounter with Invidious is the UI. While it's not the best, I'll be using ff2mpv, which is a firefox extension that opens every video in MPV.
Start off by cloning the repository
git clone https://github.com/iv-org/invidious.git
cd invidious
docker-compose.yml
and add the following:
version: "3"
services:
invidious:
image: quay.io/invidious/invidious:latest
# image: quay.io/invidious/invidious:latest-arm64 # ARM64/AArch64 devices
restart: unless-stopped
ports:
- "3000:3000"
environment:
# Please read the following file for a comprehensive list of all available
# configuration options and their associated syntax:
# https://github.com/iv-org/invidious/blob/master/config/config.example.yml
INVIDIOUS_CONFIG: |
db:
dbname: invidious
user: kemal
password: kemal
host: invidious-db
port: 5432
check_tables: true
# external_port:
# domain:
# https_only: false
# statistics_enabled: false
hmac_key: "CHANGE_ME!!"
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1
interval: 30s
timeout: 5s
retries: 2
logging:
options:
max-size: "1G"
max-file: "4"
depends_on:
- invidious-db
invidious-db:
image: docker.io/library/postgres:14
restart: unless-stopped
volumes:
- postgresdata:/var/lib/postgresql/data
- ./config/sql:/config/sql
- ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
environment:
POSTGRES_DB: invidious
POSTGRES_USER: kemal
POSTGRES_PASSWORD: kemal
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
volumes:
postgresdata:
To generate the hmac key, simply use pwgen 20 1
and finally start the server using docker-compose up
.I didn't include Emails in today's blog because I already don't use Gmail. But if you do, Tutanota/Protonmail/Cock.li are great alternatives. I personally also use Thunderbird as my email client. Another great alternative is to host your own email server. It's a fun weekend project and I might also post it as a blog on here some day.