Package: wnpp Severity: wishlist * Package name : goatcounter Version : 1.3.1 Upstream Author : Martin Tournoij <mar...@arp242.net> * URL : https://www.goatcounter.com/ * License : EUPL 1.2 Programming Lang: Golang Description : easy, meaningful privacy-friendly web analytics
GoatCounter is an open source web analytics platform available as a hosted service (free for non-commercial use) or self-hosted app. It aims to offer easy to use and meaningful privacy-friendly web analytics as an alternative to Google Analytics or Matomo. There are two ways to run this: as hosted service on goatcounter.com, free for non-commercial use, or run it on your own server (the source code is completely Open Source/Free Software, and it can be self-hosted without restrictions). Features: * Privacy-aware; doesn't track users with unique identifiers and doesn't need a GDPR consent notice. Also see the privacy policy. * Lightweight and fast; adds just ~5K (~2.5K compressed) of extra data to your site. Also has JavaScript-free "tracking pixel" option, or you can use it from your application's middleware. * Easy; if you've been confused by the myriad of options and flexibility of Google Analytics and Matomo that you don't need then GoatCounter will be a breath of fresh air. * Identify unique visits without cookies using a non-identifiable hash (technical details). * Keeps useful statistics such as browser information, location, and screen size. Keep track of referring sites and campaigns. * Accessibility is a high-priority feature, and the interface works well with screen readers, no JavaScript, and even text browsers (although not all features work equally well without JS). * 100% committed to open source; you can see exactly what the code does and make improvements. * Own your data; you can always export all data and cancel at any time. * Integrate on your site with just a single script tag * The JavaScript integration is a good option for most, but you can also use a no-JavaScript image-based tracker or integrate in your backend middleware. * Fast: can handle about 800 hits/second on a $5/month Linode VPS using the default settings. * Self-contained binary: everything – including static assets – is in a single ~7M statically compiled binary. The only other thing you need is a SQLite database file or PostgreSQL connection (no way around that). ---- There are many other analytics programs in Debian: goaccess, analog, webalizer, and probably others. But goatcounter is unique in that it's one of the few analytics programs that actually makes a genuine attempt at somewhat anonymizing the data it collects. I found this program through this LWN article: https://lwn.net/Articles/822568/ It would be great if some other go team folks would take this on, but otherwise I might just do it myself in my copious spare time. It seems the packaging might take some work with dependencies, as dh-make-golang took its sweet time to just fail with an error: $ dh-make-golang estimate github.com/zgoat/goatcounter go get: 25.17 MiBpackage github.com/zgoat/goatcounter/handlers: code in directory /tmp/dh-make-golang269924867/src/github.com/zgoat/goatcounter/handlers expects import "zgo.at/goatcounter/handlers" go get: 221.47 MiBpackage github.com/zgoat/goatcounter/cmd/check imports honnef.co/go/tools/code: cannot find package "honnef.co/go/tools/code" in any of: /usr/lib/go-1.11/src/honnef.co/go/tools/code (from $GOROOT) /tmp/dh-make-golang269924867/src/honnef.co/go/tools/code (from $GOPATH) package github.com/zgoat/goatcounter/cmd/check imports honnef.co/go/tools/facts: cannot find package "honnef.co/go/tools/facts" in any of: /usr/lib/go-1.11/src/honnef.co/go/tools/facts (from $GOROOT) /tmp/dh-make-golang269924867/src/honnef.co/go/tools/facts (from $GOPATH)go get: 261.54 MiBpackage github.com/zgoat/goatcounter/cmd/goatcounter imports arp242.net/sconfig/handlers/html/template: unrecognized import path "arp242.net/sconfig/handlers/html/template" (parse https://arp242.net/sconfig/handlers/html/template?go-get=1: no go-import meta tags ()) 2020/07/11 17:26:52 exit status 1 make fails in a similar way: anarcat@emma:dist(master)$ dh-make-golang make github.com/zgoat/goatcounter 2020/07/11 17:27:29 Downloading "github.com/zgoat/goatcounter/..." 2020/07/11 17:27:40 Determining upstream version number 2020/07/11 17:27:40 Package version is "1.3.0+git20200711.37ad12d" can't load package: package github.com/zgoat/goatcounter/handlers: code in directory /tmp/dh-make-golang955010176/src/github.com/zgoat/goatcounter/handlers expects import "zgo.at/goatcounter/handlers" 2020/07/11 17:27:41 Could not create a tarball of the upstream source: [go list -f {{.ImportPath}} {{.Name}} github.com/zgoat/goatcounter/...]: exit status 1 ... and indeed, many packages in go.mod point at zgo.at, which is a repository hosted just for goatcounter... So, much fun in perspective. a.