qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.54k stars 2.99k forks source link

Plugin Manager: Allow fetching from an enterprise internal mirror #47143

Open jornfranke opened 2 years ago

jornfranke commented 2 years ago

Feature description

Hallo,

at the moment, QGIS can fetch plugins from the official website. We would like to fetch it from a network internal mirror without requiring QGIS users to use the Internet. For example, if someone mirrors the site in JFrog Artifactoy then we can point QGIS to the internal mirror. This can be configured currently in QGIS. However, there are two issues: 1) QGIS appends to the URL a dynamic parameter containing the version number - this cannot be really mirrored 2) QGIS fetches a plugins.xml which contains again individual URLs pointing to the original QGIS server.

Ideally, QGIS does not need to fetch a plugins.xml, but uses the standard folder structure on the web server, which then can be mirrored more simply without developing a custom solution or scripts to mirror (e.g. by simply using JFrog Artifactory). If there is another alternative that provides the same thing (no plugins.xml with hardcoded URLs) it would be of course also fine. For example, what could help (to be determined) is that plugins.xml does not contain absolute URLs, but only relative URLs that QGIS translate into absolute URLs using the configured mirror.

Thank you.

best regards

Additional context

No response

gioman commented 2 years ago

2. plugins.xml

@jornfranke can't you just parse the whole QGIS repository, generate a plugins.xml file with URL pointing to you own server and then serve it?

jornfranke commented 2 years ago

Hi, yes one could do this. However, I was wondering if one can use a standard software for caching of application repositories, such as Nexus or JFrog Artifactory without the need to implement something custom. This avoids the maintenance and it works also for other type of repositories, such as Maven, Pypi, Cran, Ctan etc.

best regards