GoatCounter v2.2.0 Release Notes

Release Date: 2022-02-16 // 6 months ago
    • The database connection string changed; you now need to use -db engine+connect string rather than engine://connect string:

      -db sqlite+[sqlite connection string] -db postgresql+[sqlite connection string]

    Various aliases such a sqlite3, postgres also work.

    The previous "url-like" strings conflicted with PostgreSQL's URL connection strings, causing confusion.

    ://-type strings without a + will be rewritten, but will issue a warning.

    • GoatCounter can now collect language statistics as well, from the Accept-Language HTTP header. This is disabled by default, but can be enabled in the site settings.

    • 0️⃣ Charts are now drawn as a line chart by default; you can choose to use bar charts in the widget settings menu by selecting the "chart style" for the "Paths overview" and/or "Total site pageviews"

    Both charts are also completely reïmplemented by drawing on a canvas instead of aligning divs in a flexbox because rendering thousands of divs in a flexbox is actually fairly slow.

    • 💅 The "View as text table" button in the header moved to the "Chart style" section mentioned above; this checkbox was added before the configurable dashboard feature, and especially now that you can set a chart style it makes more sense to set it there.

    • Data is now sent over a WebSocket, rather than rendering everything. The upshot of this is that the perceived performance is better: it only needs to calculate the data that's initially visible, and it's okay to wait a bit for the data that's not. The downside is that you need JavaScript, but that was already the case to render the charts.

    • There is a "server management" tab in the settings which allows viewing and editing some server internals. This page is only available to users with the (new) "server management" access.

    All sites with just one user have this user's permissions automatically "upgraded"; sites with more than one user since I don't know which user should have which permissions.

    To prevent updating users, you can use (before running migrations):

      % goatcounter db query "insert into version values ('2021-12-13-2-superuser')"

    To update an existing user, you can use:

      % goatcounter db update users -access superuser [email protected]
    • ➕ Add -ratelimit flag to configure the built-in ratelimits (the default values are unchanged). See goatcounter help serve for details.

    • 🆕 New translations: Italian, Spanish (Chilean), Turkish.

Previous changes from v2.1.0

  • 🛠 Aside from a number of small fixes and improvements, major changes include:

    • 👌 Support for translations; see https://www.goatcounter.com/translating for details how to translate GoatCounter.

    • ⚡️ The import path is now updated to use "zgo.at/goatcounter/v2" so that e.g. "go install zgo.at/goatcounter/v2" works. This should have been done with the 2.0 release, but I didn't realize how this all worked.

    • 👍 The visitor counter now supports the start and end parameters and the JSON endpoint returns count as well, to get the total pageview count.

    • You can now make the dashboard viewable to anyone who has a secret token (e.g. https://mystats.example.com?access-token=5g4..)

    🚀 This release requires Go 1.17 to build.