diff --git a/config/discourse_defaults.conf b/config/discourse_defaults.conf index 12afa2245a6..6da530c043d 100644 --- a/config/discourse_defaults.conf +++ b/config/discourse_defaults.conf @@ -234,11 +234,15 @@ max_logster_logs = 1000 # during precompile update maxmind database if older than N days # set to 0 to disable -refresh_maxmind_db_during_precompile_days = 30 +refresh_maxmind_db_during_precompile_days = 2 # backup path containing maxmind db files maxmind_backup_path = +# register an account at: https://www.maxmind.com/en/geolite2/signup +# then head to profile and get your license key +maxmind_license_key= + # when enabled the following headers will be added to every response: # (note, if measurements do not exist for the header they will be omitted) # diff --git a/lib/discourse_ip_info.rb b/lib/discourse_ip_info.rb index 75853c10f20..50c5d3854f2 100644 --- a/lib/discourse_ip_info.rb +++ b/lib/discourse_ip_info.rb @@ -25,10 +25,19 @@ class DiscourseIpInfo end def self.mmdb_download(name) + + if GlobalSetting.maxmind_license_key.blank? + STDERR.puts "MaxMind IP database updates require a license" + STDERR.puts "Please set DISCOURSE_MAXMIND_LICENSE_KEY to one you generated at https://www.maxmind.com" + return + end + FileUtils.mkdir_p(path) + url = "https://download.maxmind.com/app/geoip_download?license_key=#{GlobalSetting.maxmind_license_key}&edition_id=#{name}&suffix=tar.gz" + gz_file = FileHelper.download( - "https://geolite.maxmind.com/geoip/databases/#{name}/update", + url, max_file_size: 100.megabytes, tmp_file_name: "#{name}.gz", validate_uri: false,