De-Google my blog - How to blog in 2020 without Google

Posted on May 20, 2020
Last updated on May 25, 2020

Hi everyone!

Right now I have Google almost completely out of my life, but some of the top commentaries of my posts in /r/degoogle and /r/selfhosted were “Your blog still uses google for resources lol”, so I needed to change that.

2020-05-25-115855 Shame.

In my old blog, the features that used Google where:

  1. Disquss comments
  2. The Ghost theme

Before we begin, I want to let you know that all these fixes have been applied, so you are currently experiencing the final result.

Fixing comments

I was using disquss to handle comments, since it is what everyone recommends. I checked the network resources on my site and found something horrible: A bunch of random calls to a bunch of external addresses, not just Google. Since I care about my reader’s privacy, disquss had to go. Someone in /r/degoogle suggested “Commento”, and it looked like it was exactly what I needed: A free and opensource, self-hosted alternative to disquss, and it also had an official docker release!

According to their documentation:

version: '3'

services:
  server:
    image: registry.gitlab.com/commento/commento
    restart: always
    ports:
      - 5000:8080
    environment:
      COMMENTO_ORIGIN: https://commento.rogs.me
      COMMENTO_PORT: 8080
      COMMENTO_POSTGRES: postgres://postgres:mysupersecurepassword@db:5432/commento?sslmode=disable
      COMMENTO_SMTP_HOST: my-mail-host.com
      COMMENTO_SMTP_PORT: 587
      COMMENTO_SMTP_USERNAME: mysmtpusername@mail.com
      COMMENTO_SMTP_PASSWORD: mysmtppassword
      COMMENTO_SMTP_FROM_ADDRESS: mysmtpfromaddress@mail.com
    depends_on:
      - db
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_DB: commento
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: mysupersecurepassword
    volumes:
      - postgres_data_volume:/var/lib/postgresql/data

volumes:
  postgres_data_volume:

I created an NGINX reverse proxy for port 5000 and that was it! Commento was up and running without much issue.

2020-05-20-105918

Then, I configured my blog and added the simple universal snippet on my blog posts template pages:

<script defer src="https://commento.rogs.me/js/commento.js"></script>
<div id="commento"></div>

Is that it?

Yes, as easy as that. Comments were up and running in less than 20 mins, with no random external resources. Sweet!

2020-05-20-110914

I could even import my old disquss comments in Commento! I was a bit sad to lose them, but they were just fine!

2020-05-21-121039

So now that my comments were ready, I could move forward to fixing Ghost

The Ghost theme

This was quite simple. I forked the git repo for my blog theme and began removing everything regarding Google fonts. You can check the final results here: https://git.rogs.me/me/blog.rogs.me-ghost-theme

But that’s not entirely it!

My ghost blog was big and bloated, and I wasn’t really enjoying it anymore, so I wanted to move it to something more static, fast, and reliable, so I moved everything to Hugo!

What is Hugo?

According to their website:

Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.

So it is a static site generator, that uses .md files for content.

Why did I chose Hugo?

  • Hugo needs no dependencies. I just had to do sudo pacman -S hugo and no further dependencies were needed
  • Hugo doesn’t need a database since it is static. That means that my blog could load A LOT faster (and it does!)
  • Hugo uses a lot less resources than Ghost. For Ghost I needed a docker running with a database, with Hugo I just serve the files directly with NGINX, just like a regular plain HTML website.

And that is what you are seeing right now!

This blog is 100% running with Hugo. Migration was super easy, since Ghost also uses Markdown files. I just needed to match the URLs so old posts wouldn’t break and comments worked like they did before. I chose a simple template, migrated, deployed to my server and that was it!

You can check the code for my blog here: https://gitlab.com/rogs/rogs.me

My theme: https://github.com/athul/archie

I was pretty satisfied with the migration and how things were coming along.

One extra thing: Matomo Analytics

For Analytics, of course I wasn’t going to use Google Analytics, so Matomo was an easy choice. Here is my configuration:

version: "3"

services:
  app:
    image: matomo:latest
    restart: always
    links:
      - db
    volumes:
      - "./config:/var/www/html/config:rw"
      - "./logs:/var/www/html/logs"
    ports:
      - "9000:80"

  db:
    image: mariadb:latest
    restart: always
    volumes:
      - "./mysql/runtime2:/var/lib/mysql"
    environment:
      - "MYSQL_DATABASE=matomo"
      - "MYSQL_ROOT_PASSWORD=mysupersecurepassword"
      - "MYSQL_USER=matomo"
      - "MYSQL_PASSWORD=anothersupersecurepassword"

Again, another reverse proxy for port 9000 and Matomo was up and running!

2020-05-20-114330 2020-05-21-121645 My blog stats in Matomo

Matomo has everything I need, while respecting the users’ privacy. If you haven’t used it before, you should definitely check it out! I have used Google Analytics before, but Matomo seems more powerful to me.

Conclusion

It isn’t easy to run a website outside of Google, but with a little dedication it is possible. With tools like Matomo and Commento you can easily respect your user’s privacy and get away from Google’s “big brotherness”.

If you have any further suggestions, I’m always looking for more things to self-host and separate from big corporations.

Until next time!