Ambiente do servidor: VPS, com Discourse implantado via Docker no 1Panel
Este guia aplica-se ao caso em que o app.yml não define maxmind_id e key, e os arquivos GeoLite2-City.mmdb e GeoLite2-ASN.mmdb são baixados automaticamente e periodicamente por meio de um espelho do GitHub.
Isso resolve os seguintes dois avisos de MaxMindDB que aparecem nos logs de erro:
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Fluxo de trabalho:
1. Criar o diretório maxmind no host e definir as permissões
mkdir -p /opt/1panel/apps/discourse/shared/standalone/maxmind && chmod 755 /opt/1panel/apps/discourse/shared/standalone/maxmind && chown 1000:1000 /opt/1panel/apps/discourse/shared/standalone/maxmind
2. Configurar o mapeamento dos arquivos GeoLite2-City.mmdb e GeoLite2-ASN.mmdb para o host
Edite o app.yml e adicione:
- volume:
host: /opt/1panel/apps/discourse/shared/standalone/maxmind/GeoLite2-City.mmdb
guest: /var/www/discourse/vendor/data/GeoLite2-City.mmdb
- volume:
host: /opt/1panel/apps/discourse/shared/standalone/maxmind/GeoLite2-ASN.mmdb
guest: /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
3. Configurar uma tarefa agendada no 1Panel para baixar e atualizar periodicamente os arquivos de geolocalização GeoLite2-City.mmdb e GeoLite2-ASN.mmdb do GitHub a cada semana
Script da tarefa agendada:
cd /opt/1panel/apps/discourse/shared/standalone/maxmind && rm -f GeoLite2-City.mmdb GeoLite2-ASN.mmdb && wget -O GeoLite2-City.mmdb https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-City.mmdb && wget -O GeoLite2-ASN.mmdb https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-ASN.mmdb && chmod 644 GeoLite2-City.mmdb GeoLite2-ASN.mmdb && chown 1000:1000 GeoLite2-City.mmdb GeoLite2-ASN.mmdb
