Recommended: Self hosted cookieless web analytics

Hi,

there is a new statistic tool available. It is GDPR and DSGVO compliant, easy to set up and comes from Doobox. More than enough reasons for me to try this in the last days: DooStats | Doobox

I was searching for an easy to use, self hosted statistics for a while now. Even though Matomo is very powerful, it was way too much for me and my clients. I want to know where my visitors are coming from, which sites they visit, how many are at this moment on my site. And all this in a nice GUI which does not leave me confused. Doostats does all this in a perfect way.

I did not want to have to use additional consent- or cookie banners and I am very cautious about data protection, and doostats does not save any IP address.

Installation is a breeze: all I need to do is upload a folder to my server. Open a URL, set a password and include one small script on each page I want to have tracked. I added this sitewide.

After this I already see the dashboard and everything which is happening on my site. It took me about 10 Minutes altogether.

Here is a list of the features, taken from the website:

  • Count pageviews, unique and returning visitors on your own server.
  • Track devices, peak times, and performance vs the last period.
  • See live visitors on a first party country map.
  • Record website events with a simple HTML attribute.
  • Catch 404s and filter bots, IPs, and junk referrers.
  • Keep data private, no tracking cookies, raw IPs never stored.
  • Everything lives in one folder you upload, no extra services.

Ships in English, with German, French, Japanese, Spanish, Simplified Chinese, Italian, Brazilian Portuguese, Korean, Dutch, Traditional Chinese, Polish, and Swedish.

If you are looking for a simple, yet comprehensive statistic tool to get to know more about your sites visitors, please check out DooStats | Doobox

For the price of around 30GBP it is a steal and you can use it on all domains you control or use yourself.

And yes, I am really impressed and I do not get any advantage from posting here. It is something which has been missing in my toolbox for a long time.

Funny I was looking at this a day or two ago and was thinking about making a post about it, but then other stuff required my attention. :sweat_smile:

It does look like a cool alternative to Matomo, which is a bit complex to set up although more feature rich, which is a blessing and a curse because it’s much more server resource intensive..

Thanks for the detailed review @Fuellemann :slightly_smiling_face:

Also based on the Install instructions, this is 100% compatible on Elements Hosting if anybody hosting with us wants to install it. Of course if anybody hosting with us needs help installing it I’m happy to help with that. :smiling_face:

As a one off payment I may have to look into that over the weekend. Currently using Fathom but that is a monthly subscription and possibly too much for what I need.

So no pop-up cookies consent or decline needed?

There are no cookies and an Ip address is processed on premise but not stored or transmitted anywhere. I am no lawyer but this does not need any consent in my opinion. You do need to mention this in your privacy statement though .

I read the install guide and it’s not super easy to install (for an amateur).

Gary has always done amazing stuff, I’m a big fan of some of his works, he helped me a lot on here with Eleemnts stuff too in early days. Well Done Gary!

That’s why you should have a web host that supports you. :laughing:

I’m actually thinking about buying it so I can do a “How to install this on Elements Hosting” video, as it is lightweight… :thinking:

If I do that, you could just watch the video and apply it to any web hosting provider, give or take a few differences between their control panels and ours…

My host is okay - https://www.loopia.se - they have good support too, but of course not as good as yours …

A video would be nice. I didn’t find Doobox on YouTube.

Easy purchase.

Thanks for sharing.

I’m already on it. :grin:

I found it to be incredibly easy to install and get running. Handling updates was a little more awkward, but once I had a synchronization set up in Forklift, the process became super simple.

Gary is great at pumping out updates, so this last part was an important step.

I would suggest that anyone can handle setting this up with ease. If you really need help then @differentdan is your man.

It’s not a polished video by any means, and it’s just a quick overview of how to get it installed on your Elements Hosting account, but hope it helps anybody who needs it. :blush:

Eh actually I want to do a more polished version to add to the Help Docs, so stay tuned for that one instead. :sweat_smile:

Thanks Jan @Fuellemann for posting it here. Instant purchase! For this price it’s a steal :slightly_smiling_face:

With the help of Claude Fable 5, I have found that the easiest way (so far) to set this up for my website (which uses php) is to modify the Elements global site template to include the following code at the start of the template:

<?php
$doostats404 = (($_SERVER['SCRIPT_NAME'] ?? '') === '/error404/index.php');
if ($doostats404) { http_response_code(404); }
?>

(where ‘error404’ is the folder for the 404 page I have setup and defined in Elements)

Add the following code just after the <head> statement:

<?php if ($doostats404) { echo '<base href="/error404/">'; } ?>

(makes the 404 page’s relative CSS/JS/image links resolve against its real location instead of whatever broken URL the visitor typed, so the page stays styled at any URL depth.)

Add the following code just before the </body> statement in the template:

<script src="/doostats/tracker.js"<?= $doostats404 ? ' data-doostats-404' : '' ?> defer></script>

This means that every page on the website will monitored by only having to modify the site template.

The php script at the start checks if the page is the 404 page, sets a flag ($doostats404) which is then checked by the script which adds in the required data-doostats-404 for the 404 page only.

Running on Apache, you also need a .htaccess file at the website root level with the line:

ErrorDocument 404 /error404/index.php

(again where /error404/index.php is your 404 page.

Shared in case anyone else finds this useful. :slightly_smiling_face:

UPDATED TO ADD IN <base href="... STATEMENT AND REASON FOR CODE.

A php free version would be:

Add this somewhere only on the Elements 404 page:

<div data-doostats-404-page hidden></div>

Then use this once in the global template before </body>

<script>
  const tracker = document.createElement('script');
  tracker.src = '/doostats/tracker.js';
  if (document.querySelector('[data-doostats-404-page]')) {
    tracker.setAttribute('data-doostats-404', '');
  }
  document.body.appendChild(tracker);
</script>

Then add to your htaccess file :

ErrorDocument 404 /error404/index.html

where - /error404/index.html - is the path to your custom 404 page.

For your all php site it may be less brittle to use :

<?php $doostats404 = (http_response_code() === 404); ?>

and then :

<script src="/doostats/tracker.js"<?= $doostats404 ? ' data-doostats-404' : '' ?> defer></script>

Why would you have to do all this?

Your comment:

With the help of Claude Fable 5, I have found that the easiest way (so far) to set this up for my website (which uses php)

makes it sound like all of that information you listed is required for pages with .php as the file extension.

This is not something the Install Instructions mention, so I feel this is going to cause confusion for people reading this thread thinking they have to do all that stuff you listed if they have some web pages using .php as the file extension..

You don’t — it’s really just the ErrorDocument line plus a <base> tag so styling survives deep URLs. The couple of lines of PHP are only because I use the one shared template for the whole site, so the 404 page needs a switch to get its extra attribute. With a separate 404 template you’d skip the PHP entirely.

I was just sharing in case anyone found it useful. :wink:

Give me 20 mins. I am making it easier to add the tracker globally for deployments like Elements that have a global template.

It won’t require changes by existing users, it will just be an option, another snippet that can be applied globally.