shlinkio / shlink

The definitive self-hosted URL shortener
https://shlink.io
MIT License
3.39k stars 277 forks source link

Avoid downloading GeoLite2 database if DISABLE_IP_TRACKING #1100

Closed matiasgarciaisaia closed 3 years ago

matiasgarciaisaia commented 3 years ago

Summary

When IP tracking is disabled, shlink should avoid trying to get a GeoLite2 database from MaxMind.


I'm running shlinkio/shlink:2.7.0 (current stable) locally with DISABLE_IP_TRACKING: 'true'.

Upon my first visit to the root path, shlink tries to download the GeoLite2 database and fails (due to the default license key resulting in a 429 Too Many Requests), even though I've asked shlink to disable IP tracking.

I think shlink should avoid interacting with the GeoLite2 DB at all if geolocating IPs is disabled.


Repro docker-compose.yml:

version: "3.9"
services:
  web:
    image: shlinkio/shlink:2.7.0
    environment:
      DISABLE_IP_TRACKING: 'true'

Logs:

$ docker compose up
[+] Running 1/0
 ⠿ Container shlink_web_1  Recreated                                                                                                                                                                                     0.0s
Attaching to web_1
web_1  | Creating fresh database if needed...
web_1  | Updating database...
web_1  | Generating proxies...
web_1  | Clearing entities cache...
web_1  | [2021-05-27T22:10:39.732871+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 16
web_1  | [2021-05-27T22:10:39.733205+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 17
web_1  | [2021-05-27T22:10:39.733487+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 18
web_1  | [2021-05-27T22:10:39.733998+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 19
web_1  | [2021-05-27T22:10:39.734975+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 20
web_1  | [2021-05-27T22:10:39.735164+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 21
web_1  | [2021-05-27T22:10:39.735823+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 22
web_1  | [2021-05-27T22:10:39.737009+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 23
web_1  | [2021-05-27T22:10:39.737245+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 24
web_1  | [2021-05-27T22:10:39.738345+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 25
web_1  | [2021-05-27T22:10:39.739123+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 26
web_1  | [2021-05-27T22:10:39.740203+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 27
web_1  | [2021-05-27T22:10:39.741081+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 28
web_1  | [2021-05-27T22:10:39.743383+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 29
web_1  | [2021-05-27T22:10:39.743655+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 30
web_1  | [2021-05-27T22:10:39.747726+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 31
web_1  | [2021-05-27T22:10:39.750320+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 0
web_1  | [2021-05-27T22:10:39.752794+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 1
web_1  | [2021-05-27T22:10:39.755045+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 2
web_1  | [2021-05-27T22:10:39.756525+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 3
web_1  | [2021-05-27T22:10:39.760646+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 4
web_1  | [2021-05-27T22:10:39.763284+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 5
web_1  | [2021-05-27T22:10:39.768796+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 6
web_1  | [2021-05-27T22:10:39.768946+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 7
web_1  | [2021-05-27T22:10:39.772699+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 8
web_1  | [2021-05-27T22:10:39.775477+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 9
web_1  | [2021-05-27T22:10:39.778796+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 10
web_1  | [2021-05-27T22:10:39.779882+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 11
web_1  | [2021-05-27T22:10:39.782521+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 12
web_1  | [2021-05-27T22:10:39.786047+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 13
web_1  | [2021-05-27T22:10:39.790807+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 14
web_1  | [2021-05-27T22:10:39.791499+00:00] [NULL] Access.NOTICE - Worker started in /etc/shlink with ID 15
web_1  | [2021-05-27T22:11:28.393473+00:00] [NULL] Shlink.WARNING - Tried to locate visit with id "4", but a GeoLite2 db was not found.
web_1  | [2021-05-27T22:11:28.419599+00:00] [NULL] Shlink.NOTICE - Starting work on task 0 using: {"handler":"Shlinkio\\Shlink\\Core\\EventDispatcher\\NotifyVisitToMercure","arguments":[{"visitId":"4"}]}
web_1  | [2021-05-27T22:11:28.418862+00:00] [NULL] Shlink.NOTICE - Starting work on task 1 using: {"handler":"Shlinkio\\Shlink\\Core\\EventDispatcher\\NotifyVisitToWebHooks","arguments":[{"visitId":"4"}]}
web_1  | [2021-05-27T22:11:28.423558+00:00] [NULL] Shlink.NOTICE - Starting work on task 2 using: {"handler":"Shlinkio\\Shlink\\Core\\EventDispatcher\\UpdateGeoLiteDb","arguments":[{"visitId":"4"}]}
web_1  | [2021-05-27T22:11:28.431642+00:00] [NULL] Access.ERROR - 172.18.0.1 - - "GET / HTTP/1.1" 404 979
web_1  | [2021-05-27T22:11:28.467038+00:00] [NULL] Shlink.NOTICE - Downloading GeoLite2 db file...
web_1  | [2021-05-27T22:11:28.483189+00:00] [NULL] Shlink.NOTICE - Finished downloading GeoLite2 db file
web_1  | [2021-05-27T22:11:28.497624+00:00] [NULL] Shlink.NOTICE - Task 1 has finished
web_1  | [2021-05-27T22:11:28.593909+00:00] [NULL] Shlink.NOTICE - Task 0 has finished
web_1  | [2021-05-27T22:11:30.293424+00:00] [NULL] Shlink.ERROR - GeoLite2 database download failed. 
web_1  | GuzzleHttp\Exception\ClientException: Client error: `GET https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=G4Lm0C60yJsnkdPi&suffix=tar.gz` resulted in a `429 Too Many Requests` response:
web_1  | Daily GeoIP database download limit reached
web_1  | 
web_1  |  in /etc/shlink/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113
web_1  | Stack trace:
web_1  | #0 /etc/shlink/vendor/guzzlehttp/guzzle/src/Middleware.php(69): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response), NULL, Array, NULL)
web_1  | #1 /etc/shlink/vendor/guzzlehttp/promises/src/Promise.php(204): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response))
web_1  | #2 /etc/shlink/vendor/guzzlehttp/promises/src/Promise.php(153): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), NULL)
web_1  | #3 /etc/shlink/vendor/guzzlehttp/promises/src/TaskQueue.php(48): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}()
web_1  | #4 /etc/shlink/vendor/guzzlehttp/promises/src/Promise.php(248): GuzzleHttp\Promise\TaskQueue->run(true)
web_1  | #5 /etc/shlink/vendor/guzzlehttp/promises/src/Promise.php(224): GuzzleHttp\Promise\Promise->invokeWaitFn()
web_1  | #6 /etc/shlink/vendor/guzzlehttp/promises/src/Promise.php(269): GuzzleHttp\Promise\Promise->waitIfPending()
web_1  | #7 /etc/shlink/vendor/guzzlehttp/promises/src/Promise.php(226): GuzzleHttp\Promise\Promise->invokeWaitList()
web_1  | #8 /etc/shlink/vendor/guzzlehttp/promises/src/Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending()
web_1  | #9 /etc/shlink/vendor/guzzlehttp/guzzle/src/Client.php(187): GuzzleHttp\Promise\Promise->wait()
web_1  | #10 /etc/shlink/vendor/shlinkio/shlink-ip-geolocation/src/GeoLite2/DbUpdater.php(55): GuzzleHttp\Client->request('GET', 'https://downloa...', Array)
web_1  | #11 /etc/shlink/vendor/shlinkio/shlink-ip-geolocation/src/GeoLite2/DbUpdater.php(43): Shlinkio\Shlink\IpGeolocation\GeoLite2\DbUpdater->downloadDbFile('/etc/shlink/con...', Object(Closure))
web_1  | #12 /etc/shlink/module/CLI/src/Util/GeolocationDbUpdater.php(101): Shlinkio\Shlink\IpGeolocation\GeoLite2\DbUpdater->downloadFreshCopy(Object(Closure))
web_1  | #13 /etc/shlink/module/CLI/src/Util/GeolocationDbUpdater.php(53): Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater->downloadNewDb(false, Object(Closure), Object(Closure))
web_1  | #14 /etc/shlink/module/CLI/src/Util/GeolocationDbUpdater.php(41): Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater->downloadIfNeeded(Object(Closure), Object(Closure))
web_1  | #15 /etc/shlink/module/Core/src/EventDispatcher/UpdateGeoLiteDb.php(40): Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater->checkDbUpdate(Object(Closure), Object(Closure))
web_1  | #16 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Task/ServiceBasedTask.php(55): Shlinkio\Shlink\Core\EventDispatcher\UpdateGeoLiteDb->__invoke(Object(Shlinkio\Shlink\Core\EventDispatcher\Event\VisitLocated))
web_1  | #17 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Task/TaskInvokerListener.php(51): Mezzio\Swoole\Task\ServiceBasedTask->__invoke(Object(Laminas\ServiceManager\ServiceManager))
web_1  | #18 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Event/EventDispatcher.php(41): Mezzio\Swoole\Task\TaskInvokerListener->__invoke(Object(Mezzio\Swoole\Event\TaskEvent))
web_1  | #19 /etc/shlink/vendor/mezzio/mezzio-swoole/src/SwooleRequestHandlerRunner.php(192): Mezzio\Swoole\Event\EventDispatcher->dispatch(Object(Mezzio\Swoole\Event\TaskEvent))
web_1  | #20 [internal function]: Mezzio\Swoole\SwooleRequestHandlerRunner->onTask(Object(Swoole\Http\Server), 2, 6, Object(Mezzio\Swoole\Task\ServiceBasedTask))
web_1  | #21 /etc/shlink/vendor/mezzio/mezzio-swoole/src/SwooleRequestHandlerRunner.php(86): Swoole\Server->start()
web_1  | #22 /etc/shlink/vendor/mezzio/mezzio/src/Application.php(76): Mezzio\Swoole\SwooleRequestHandlerRunner->run()
web_1  | #23 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Command/StartCommand.php(122): Mezzio\Application->run()
web_1  | #24 /etc/shlink/vendor/symfony/console/Command/Command.php(256): Mezzio\Swoole\Command\StartCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #25 /etc/shlink/vendor/symfony/console/Application.php(989): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #26 /etc/shlink/vendor/symfony/console/Application.php(290): Symfony\Component\Console\Application->doRunCommand(Object(Mezzio\Swoole\Command\StartCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #27 /etc/shlink/vendor/symfony/console/Application.php(166): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #28 /etc/shlink/vendor/laminas/laminas-cli/bin/laminas(53): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #29 {main}
web_1  | 
web_1  | Next Shlinkio\Shlink\IpGeolocation\Exception\DbUpdateException: An error occurred while trying to download a fresh copy of the GeoLite2 database in /etc/shlink/vendor/shlinkio/shlink-ip-geolocation/src/Exception/DbUpdateException.php:36
web_1  | Stack trace:
web_1  | #0 /etc/shlink/vendor/shlinkio/shlink-ip-geolocation/src/Exception/DbUpdateException.php(15): Shlinkio\Shlink\IpGeolocation\Exception\DbUpdateException::build('An error occurr...', Object(GuzzleHttp\Exception\ClientException))
web_1  | #1 /etc/shlink/vendor/shlinkio/shlink-ip-geolocation/src/GeoLite2/DbUpdater.php(58): Shlinkio\Shlink\IpGeolocation\Exception\DbUpdateException::forFailedDownload(Object(GuzzleHttp\Exception\ClientException))
web_1  | #2 /etc/shlink/vendor/shlinkio/shlink-ip-geolocation/src/GeoLite2/DbUpdater.php(43): Shlinkio\Shlink\IpGeolocation\GeoLite2\DbUpdater->downloadDbFile('/etc/shlink/con...', Object(Closure))
web_1  | #3 /etc/shlink/module/CLI/src/Util/GeolocationDbUpdater.php(101): Shlinkio\Shlink\IpGeolocation\GeoLite2\DbUpdater->downloadFreshCopy(Object(Closure))
web_1  | #4 /etc/shlink/module/CLI/src/Util/GeolocationDbUpdater.php(53): Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater->downloadNewDb(false, Object(Closure), Object(Closure))
web_1  | #5 /etc/shlink/module/CLI/src/Util/GeolocationDbUpdater.php(41): Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater->downloadIfNeeded(Object(Closure), Object(Closure))
web_1  | #6 /etc/shlink/module/Core/src/EventDispatcher/UpdateGeoLiteDb.php(40): Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater->checkDbUpdate(Object(Closure), Object(Closure))
web_1  | #7 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Task/ServiceBasedTask.php(55): Shlinkio\Shlink\Core\EventDispatcher\UpdateGeoLiteDb->__invoke(Object(Shlinkio\Shlink\Core\EventDispatcher\Event\VisitLocated))
web_1  | #8 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Task/TaskInvokerListener.php(51): Mezzio\Swoole\Task\ServiceBasedTask->__invoke(Object(Laminas\ServiceManager\ServiceManager))
web_1  | #9 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Event/EventDispatcher.php(41): Mezzio\Swoole\Task\TaskInvokerListener->__invoke(Object(Mezzio\Swoole\Event\TaskEvent))
web_1  | #10 /etc/shlink/vendor/mezzio/mezzio-swoole/src/SwooleRequestHandlerRunner.php(192): Mezzio\Swoole\Event\EventDispatcher->dispatch(Object(Mezzio\Swoole\Event\TaskEvent))
web_1  | #11 [internal function]: Mezzio\Swoole\SwooleRequestHandlerRunner->onTask(Object(Swoole\Http\Server), 2, 6, Object(Mezzio\Swoole\Task\ServiceBasedTask))
web_1  | #12 /etc/shlink/vendor/mezzio/mezzio-swoole/src/SwooleRequestHandlerRunner.php(86): Swoole\Server->start()
web_1  | #13 /etc/shlink/vendor/mezzio/mezzio/src/Application.php(76): Mezzio\Swoole\SwooleRequestHandlerRunner->run()
web_1  | #14 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Command/StartCommand.php(122): Mezzio\Application->run()
web_1  | #15 /etc/shlink/vendor/symfony/console/Command/Command.php(256): Mezzio\Swoole\Command\StartCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #16 /etc/shlink/vendor/symfony/console/Application.php(989): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #17 /etc/shlink/vendor/symfony/console/Application.php(290): Symfony\Component\Console\Application->doRunCommand(Object(Mezzio\Swoole\Command\StartCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #18 /etc/shlink/vendor/symfony/console/Application.php(166): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #19 /etc/shlink/vendor/laminas/laminas-cli/bin/laminas(53): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #20 {main}
web_1  | 
web_1  | Next Shlinkio\Shlink\CLI\Exception\GeolocationDbUpdateFailedException: An error occurred while updating geolocation database, and an older version could not be found. in /etc/shlink/module/CLI/src/Exception/GeolocationDbUpdateFailedException.php:35
web_1  | Stack trace:
web_1  | #0 /etc/shlink/module/CLI/src/Util/GeolocationDbUpdater.php(105): Shlinkio\Shlink\CLI\Exception\GeolocationDbUpdateFailedException::withoutOlderDb(Object(Shlinkio\Shlink\IpGeolocation\Exception\DbUpdateException))
web_1  | #1 /etc/shlink/module/CLI/src/Util/GeolocationDbUpdater.php(53): Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater->downloadNewDb(false, Object(Closure), Object(Closure))
web_1  | #2 /etc/shlink/module/CLI/src/Util/GeolocationDbUpdater.php(41): Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater->downloadIfNeeded(Object(Closure), Object(Closure))
web_1  | #3 /etc/shlink/module/Core/src/EventDispatcher/UpdateGeoLiteDb.php(40): Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater->checkDbUpdate(Object(Closure), Object(Closure))
web_1  | #4 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Task/ServiceBasedTask.php(55): Shlinkio\Shlink\Core\EventDispatcher\UpdateGeoLiteDb->__invoke(Object(Shlinkio\Shlink\Core\EventDispatcher\Event\VisitLocated))
web_1  | #5 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Task/TaskInvokerListener.php(51): Mezzio\Swoole\Task\ServiceBasedTask->__invoke(Object(Laminas\ServiceManager\ServiceManager))
web_1  | #6 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Event/EventDispatcher.php(41): Mezzio\Swoole\Task\TaskInvokerListener->__invoke(Object(Mezzio\Swoole\Event\TaskEvent))
web_1  | #7 /etc/shlink/vendor/mezzio/mezzio-swoole/src/SwooleRequestHandlerRunner.php(192): Mezzio\Swoole\Event\EventDispatcher->dispatch(Object(Mezzio\Swoole\Event\TaskEvent))
web_1  | #8 [internal function]: Mezzio\Swoole\SwooleRequestHandlerRunner->onTask(Object(Swoole\Http\Server), 2, 6, Object(Mezzio\Swoole\Task\ServiceBasedTask))
web_1  | #9 /etc/shlink/vendor/mezzio/mezzio-swoole/src/SwooleRequestHandlerRunner.php(86): Swoole\Server->start()
web_1  | #10 /etc/shlink/vendor/mezzio/mezzio/src/Application.php(76): Mezzio\Swoole\SwooleRequestHandlerRunner->run()
web_1  | #11 /etc/shlink/vendor/mezzio/mezzio-swoole/src/Command/StartCommand.php(122): Mezzio\Application->run()
web_1  | #12 /etc/shlink/vendor/symfony/console/Command/Command.php(256): Mezzio\Swoole\Command\StartCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #13 /etc/shlink/vendor/symfony/console/Application.php(989): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #14 /etc/shlink/vendor/symfony/console/Application.php(290): Symfony\Component\Console\Application->doRunCommand(Object(Mezzio\Swoole\Command\StartCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #15 /etc/shlink/vendor/symfony/console/Application.php(166): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #16 /etc/shlink/vendor/laminas/laminas-cli/bin/laminas(53): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
web_1  | #17 {main}
web_1  | [2021-05-27T22:11:30.320257+00:00] [NULL] Shlink.NOTICE - Task 2 has finished
matiasgarciaisaia commented 3 years ago

I may attempt a PR for this if it's considered valid. Any pointers from the devs regarding on how to tackle this would be appreciated, too :)

acelaya commented 3 years ago

This is not how it should behave. I'll give it a thought.

acelaya commented 3 years ago

Hey @matiasgarciaisaia. I have just released Shlink v2.7.1 which addresses this.

Shlink will no longer try to download the GeoLite db if DISABLE_TRACKING or DISABLE_IP_TRACKING are set to true.

Wait until this job finishes (will take around 1h), and then you will be able to pull the docker image.

matiasgarciaisaia commented 3 years ago

Nice PR :)

I'll give it a try tomorrow - thanks for taking care of this!

Roy-Orbison commented 3 years ago

So if one hasn't disabled IP tracking there's no need to update to this patch release?

matiasgarciaisaia commented 3 years ago

@acelaya the patch works great 👌

@Roy-Orbison per the diff, this is the only change since v2.7.0, so it wouldn't make any difference to upgrade if you have IP tracking enabled.

acelaya commented 3 years ago

Yes @Roy-Orbison, you can skip it, but as @matiasgarciaisaia says, there's no other side effects.

Up to you.

CPCJ79 commented 3 years ago

refreshing infra this morning and pulling from :latest broke until I intentionally disabled via the listed switch above hanging on "Downloading GeoLite2 db file..." until I did so...

-e DISABLE_TRACKING=true -e DISABLE_IP_TRACKING=true

acelaya commented 3 years ago

Hey @CPCJ79.

As that's a different issue, can you open another ticket?