February 5, 2021

How to get rid of Google ?

Following the latest Google announcement where Google plans to disable Chrome Sync features (password manager, bookmarks, history) to third-party Chromium browser after March the 15th, I would like to open the way for those who want to switch to opensource alternatives of Google Sync features.

What we'll cover

I will cover the presentation of two services:

  • Bitwarden password manager
  • Floccus bookmark manager

Both are available on Firefox and Chromium-based browser.

Prerequisites

You will need a working https proxy (Træfik in my case). We will be dealing with sensitive data such as your passwords so make sure you enabled a secure connection to your server.

I will use Docker to deploy but feel free to use any environment you are at ease with.

Bitwarden

Bitwarden is a password manager.

Features

  • Client extension with minimum local storage
  • Autopaste credentials
  • One Time Code autocopy after successful login
  • Configurable password generator
  • Password sharing & user groups
  • Supports FIDO to connect to the web interface

Config

DOMAIN=https://passwords.mydomain.org
bitwarden/.env
version: '3.3'

services:
  server:
    image: bitwardenrs/server
    volumes:
      - data:/data
    env_file:
      - .env
    networks:
      - default
    labels:
      - "traefik.http.routers.passwords.rule=Host(`passwords.mydomain.org`)"
      - "traefik.http.routers.passwords.tls=true"
      - "traefik.http.routers.passwords.tls.certresolver=letsencrypt"
      - "traefik.http.services.passwords.loadbalancer.server.port=80"

volumes:
  data:

networks:
  default:
    external:
      name: gateway
bitwarden/docker-compose.yml

I declare a data volume to keep password after restart / update queries.

Run

Go into bitwarden directory and deploy it with docker-compose up -d.

Then go to https://passwords.mydomain.org to configure your master key. I suggest you create a passphrase of at least 4 words. It is easier to type and to remember.

You can use brain_password_generator.py script from this repo: https://github.com/lapwat/random.

Now you can go on you account page to configure your vault, change you master key, rotate your encryption key, configure your Yubikey and so on.

Install the extension

Once your vault is properly configure, you can install the Chrome extension.

When opening the extension window for the first time. You need to change the Server Url in the Settings (top left corner). Set it to whatever endpoint you have chosen before (in my case https://passwords.mydomain.org).

Now you can log in with you email address and master key.

Shortcuts

  • ctrl+shift+u unlock Bitwarden
  • ctrl+shift+l autopaster login credentials
  • ctrl+shift+9 generate a new password and store it in the clipboard

Floccus

Floccus is a bookmark manager. It is useful to synchronize your bookmarks different across browsers. You can switch your browser any time and even use two different browsers at the same time.

Features

  • Extension for all major browsers
  • Standard WebDAV format
  • Auto sync

Cons

  • Extension cannot be installed on mobile (except Kiwi browser at the time of writing)

Config

USER=myuser
PASSWORD=securerandompasswordgeneratedwithbitwarden:)
floccus/.env
version: '3.3'

services:
  server:
    image: marlluslustosa/floccuswebdav
    volumes:
      - data:/var/floccuswebdav/bookmarks
    env_file:
      - .env
    networks:
      - default
    labels:
      - "traefik.http.routers.bookmarks.rule=Host(`bookmarks.mydomain.org`)"
      - "traefik.http.routers.bookmarks.tls=true"
      - "traefik.http.routers.bookmarks.tls.certresolver=letsencrypt"
      - "traefik.http.services.bookmarks.loadbalancer.server.port=8081"

volumes:
  data:

networks:
  default:
    external:
      name: gateway
floccus/docker-compose.yml

Again, we save /var/floccuswebdav/bookmarks in a volume for persistence.

Run

Go into floccus directory and deploy the stack with docker-compose up -d.

Install the adequate extension. Click on Add account then select XBEL file method for synchronization. Enter your domain endpoint (https://bookmarks.mydomain.org), user and password.

In map Folder mapping, set Local folder: /Bookmarks/ if you want to sync your bookmarks directly in your top bar.

Conclusion

This is a first step to getting rid of Google but many more things need to be done:

  • self-hosted Contacts lists
  • self-hosted Calendar events

For the 2 later, I suggest to use Nextcloud which has Contact / Calendar webDAV endpoints included.