Therefore, we have configured the country-only Geo IP 2 database at index.php?module=UserCountry&action=adminIndex by using https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz as the download URL.
Inexplicably, however, Matomo is reporting:
According to this provider, your current location is:
San Francisco, CA
Note: This GeoIP implementation has access to the following types of databases: City.
No idea what could cause this, but I was thinking perhaps the plugin downloaded a City database and has failed to overwrite that with the Country database I specified? However, autoupdates have been running:
The updater was last run on 2019-04-29.
So, I'm stumped on how to properly setup country-only GeoIP lookup.
Do you still have that problem? Tried to reproduce that, but when I set up GeoIP with the country db url, it works like it should. Did you maybe set it up with the city database and changed to download url afterwards to the country db url? The task to update the database stored locally might not be automatically triggered when the url is changed...
It was initially using the city database. So my question is, why is it not updating to use the country database when the autoupdate runs - it's now run several times on a weekly basis.
@mfb I've just investigated that one. The "issue" is quite simple. Once Matomo downloaded a database file, it's created in the folder
misc. When changing the download url to another database type it will create a new file with this name.
So in your case you had the city database defined. So a
GeoLite2-City.mmdb was created. Changing the download to country database created the file
GeoLite2-Country.mmdb, but the city database file is not automatically removed. That way it will be used, until you remove it manually.
I wouldn't delete any, but if a user has configured to download the country DB, can we prefer using that DB in matomo? (I don't know how it works)
It walks through this list and stops as soon as a file exists, which is then used. We could maybe manipulate it to prefer a specific db if autoupdate is configured.
I did some more research on this and I see that the city file is actually part of the docker build: https://github.com/matomo-org/docker/blob/master/Dockerfile-alpine.template
So this probably explains how the city file ended up in our instance in the first place.
Given that the city file is bundled with the container image, I think it'd be useful to change the logic somehow and/or add some additional configuration to the plugin?
Another solution could be to improve the text in the UI and list the filename used by the database. eg. write
Note: This GeoIP implementation has access to the following types of databases: City (database in misc/GeoLite2-City.mmdb) or so.
I'd propose since GeoLite2-City.mmdb is built in to the image, that file could be last in the list, allowing any other file to override it.
we'll probably stop using Maxmind soon, so closing this issue now, see #15308