Are you totally sure about that? Because if that is true I’ll start a reverse proxy right away.
Edit
AI here said same. So, a reverse proxy it will be.
AI answer
The GeoBlock plugin for Discourse uses the MaxMindDB database to determine a user’s country or network (ASN) based on their IP address, but the actual blocking occurs at the application level (inside the Discourse app), not at the server or network/firewall level.
In practice:
- If a visitor’s IP matches a blocked country or network, the Discourse application returns an error page to the visitor instead of forum content.
- Blocking does not happen until the HTTP request reaches the Discourse application. In other words, requests still pass through your web server (e.g., nginx) and Docker container and reach the Discourse software before the user is blocked.
- This means you will still see these requests in your server and proxy/nginx logs, even if the user is ultimately blocked by Discourse.
- If you require a “hard” block (preventing access even before the request reaches the Discourse app), you would need a server-level GeoIP solution (such as nginx/iptables-level blocking or an external tool).
Sources and more info:
- Geo Blocking plugin - meta.discourse.org
- Plugin GitHub documentation: GitHub - communiteq/discourse-geo-blocking
Summary:
The Discourse GeoBlock plugin does not block requests at the network/server level, but only after the Discourse application processes the request. If you need to prevent any access before your application sees the request, you must use a server-level GeoIP approach.
I didn’t use share conversation because I asked in Finnish and you guys propably can’t it