qgis-deployment-toolbelt


Nameqgis-deployment-toolbelt JSON
Version 0.40.0 PyPI version JSON
download
home_pageNone
SummaryQGIS deployment toolbelt is a CLI (Command Line Interface) to perform redundant operations after a QGIS deployment, managing QGIS profiles, plugins, environment variables, start menu / desktop shortcuts and many things to rationalize your QGIS installations.
upload_time2025-10-21 14:46:48
maintainerNone
docs_urlNone
authorNone
requires_python<4,>=3.10
licenseNone
keywords gis qgis cli deployment profiles qdt
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <a href="https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli">
    <img alt="QDT logo" src="docs/static/logo_qdt.png" height="175">
  </a>
</div>

# QGIS Deployment Toolbelt (QDT)

[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/qgis-deployment/qgis-deployment-toolbelt-cli/main.svg)](https://results.pre-commit.ci/latest/github/qgis-deployment/qgis-deployment-toolbelt-cli/main)
[![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Guts_qgis-deployment-cli&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Guts_qgis-deployment-cli)

[![🎳 Tester](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/actions/workflows/tests.yml/badge.svg)](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/actions/workflows/tests.yml)
[![codecov](https://codecov.io/gh/qgis-deployment/qgis-deployment-toolbelt-cli/branch/main/graph/badge.svg?token=ZHGRNMA7TV)](https://codecov.io/gh/qgis-deployment/qgis-deployment-toolbelt-cli)
[![📦 Build & 🚀 Release](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/actions/workflows/build_release.yml/badge.svg?branch=main)](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/actions/workflows/build_release.yml)

[![PyPi version badge](https://badgen.net/pypi/v/qgis-deployment-toolbelt)](https://pypi.org/project/qgis-deployment-toolbelt/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/qgis-deployment-toolbelt)](https://pypi.org/project/qgis-deployment-toolbelt/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/qgis-deployment-toolbelt)](https://pypi.org/project/qgis-deployment-toolbelt/)

**QGIS Deployment Toolbelt (QDT)** is a cross-platform (primarily Windows-focused) command-line tool that streamlines the deployment and management of **QGIS profiles**, **plugins**, and related settings within organizations.

It helps **standardize** user environments, **simplify** updates, and **integrate** with IT deployment strategies like **GPO**, **SCCM**, or **InTune**.

## ⭐ Why QDT?

- Save hours of manual QGIS configuration and profile management
- Reduce configuration errors and user friction
- Scale QGIS deployments in professional environments easily
- Reconciling GIS service expectations and IT constraints
- Community driven development and developed by experienced QGIS teams (especially [Oslandia](https://oslandia.com/))

Come, talk and ask, we're a friendly (small) group of persons behind:

- GitHub [Issues](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/issues) and [Discussions](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/discussions)
- Matrix channel: <https://matrix.to/#/#qdt:matrix.org>

### 🚀 They use and trust QDT

Here comes some of known organization which do use QDT to deploy QGIS profiles seamlessly:

<!-- markdownlint-disable MD033 -->

| [ISL Ingénierie](https://isl.fr/) | [EP Loire](https://www.eptb-loire.fr/) | [Métropole Grand Lyon](https://www.grandlyon.com/) | [Département de la Loire](https://www.loire.fr/) | [Grenoble Alpes Métropole](https://www.grenoblealpesmetropole.fr/) | [LPO Auvergne Rhône Alpes](https://auvergne-rhone-alpes.lpo.fr/) | [ANFSI](https://www.linkedin.com/company/anfsi/about/) | [EP Eaux et Vilaine](https://www.eaux-et-vilaine.bzh/) | [Métropole Aix Marseille Provence](https://ampmetropole.fr/) |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| <img src="./docs/static/logo_isl.png" max-width=100 alt="logo ISL" >  | <img src="./docs/static/logo_etablissement_public_loire.png" max-width=100 alt="logo EP Loire" > | <img src="./docs/static/logo_lyon.png" max-width=100 alt="logo" > | <img src="./docs/static/logo_cd-loire.png" max-width=100 alt="logo" > | <img src="./docs/static/logo_grenoble.png" max-width=100 alt="logo" > | <img src="./docs/static/logo_lpo.png" max-width=100 alt="logo" > | <img src="./docs/static/logo_anfsi.png" max-width=100 alt="logo" > | <img src="./docs/static/logo_eaux-et-vilaine.png" max-width=100 alt="logo" > | <img src="./docs/static/logo_amp.png" max-max-width=100 alt="logo" > |

See [more in documentation](https://qgis-deployment.github.io/qgis-deployment-toolbelt-cli/misc/references.html).

<!-- markdownlint-enable MD033 -->

## ✨ Features

- **Manage QGIS profiles easily**: define, store, and deploy profiles with a simple `profile.json` file. You can also use the [Profile Manager plugin](https://plugins.qgis.org/plugins/profile_manager/) to export your existing profiles right from QGIS.
- **Version control integration**: Git-powered backend for tracking changes and enabling collaborative profile management.
- **IT-friendly**: designed to work with Active Directory, GPOs, SCCM, InTune, and other enterprise tools.
- **Seamless user experience**: deliver a consistent QGIS experience across your organization with minimal friction.
- **Advanced configuration handling**: use variabilized `QGIS3.ini` files to handle dynamic or environment-specific settings.
- **Conditional deployments**: deploy specific profiles based on rules, environment variables, or user criteria.
- **Optimized plugin management**: reduce bandwidth usage by rationalizing plugin downloads and installations.

## 🚀 Try it quickly

You have multiple options to try QDT:

- Using Python and the official modern CLI installer [pipx](https://pipx.pypa.io/):

    ```sh
    pipx run qgis-deployment-toolbelt -s https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/raw/main/examples/scenarios/demo-scenario.qdt.yml
    ```

- Using Python and the official package installer `pip`:

    ```sh
    pip install qgis-deployment-toolbelt
    qdt -s https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/raw/main/examples/scenarios/demo-scenario.qdt.yml
    ```

- Using a pre-built executable (downloadable [through releases assets](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/releases/latest)). For example on Windows:

    ```powershell
    ./Windows_QGISDeploymentToolbelt_0-37-0.exe  -s https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/raw/main/examples/scenarios/demo-scenario.qdt.yml
    ```

Once completed, check:

- The **Start menu** / **Desktop** for new shortcuts.
- The **QGIS Profiles menu** for new profiles.

![QGIS - List of profiles with ones added by QDT demonstration scenario](./docs/static/examples_qgis_profiles_menu.png)

Splash screen when launching the **Demo Profile**:

![QGIS splash screen - QDT Demo Profile](./examples/profiles/demo/images/splash.png)

Splash screen for the **Viewer Profile**:

![QGIS splash screen - QDT Viewer Profile](./examples/profiles/Viewer%20Mode/images/splash.png)

Have you tried it on Linux? Well, you should find an additional profile simply named "QDT Only Linux".

> [!TIP]
> **Interested**? For further details, [read the documentation](https://qgis-deployment.github.io/qgis-deployment-toolbelt-cli/) :books:.

## 🤝 Contribute

Want to help? Come on it's definitely open, everything here is under [Apache 2.0 license](./LICENSE).

Check out the [contribution guide and "Development" section in the documentation](https://qgis-deployment.github.io/qgis-deployment-toolbelt-cli/development/contribute.html).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "qgis-deployment-toolbelt",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.10",
    "maintainer_email": "\"Julien Moura (Oslandia)\" <qgis+qdt@oslandia.com>, \"Jean-Marie Kerloch (Oslandia)\" <qgis+qdt@oslandia.com>, \"Nicolas Godet (ISL)\" <nicolas.godet@outlook.fr>",
    "keywords": "GIS, QGIS, cli, deployment, profiles, qdt",
    "author": null,
    "author_email": "\"Julien Moura (Oslandia)\" <qgis+qdt@oslandia.com>",
    "download_url": "https://files.pythonhosted.org/packages/28/65/f70934a72980f92f7ffd0a9544f4f68cc4c568162bb95fc68a72737823d9/qgis_deployment_toolbelt-0.40.0.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <a href=\"https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli\">\n    <img alt=\"QDT logo\" src=\"docs/static/logo_qdt.png\" height=\"175\">\n  </a>\n</div>\n\n# QGIS Deployment Toolbelt (QDT)\n\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/qgis-deployment/qgis-deployment-toolbelt-cli/main.svg)](https://results.pre-commit.ci/latest/github/qgis-deployment/qgis-deployment-toolbelt-cli/main)\n[![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Guts_qgis-deployment-cli&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Guts_qgis-deployment-cli)\n\n[![\ud83c\udfb3 Tester](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/actions/workflows/tests.yml/badge.svg)](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/actions/workflows/tests.yml)\n[![codecov](https://codecov.io/gh/qgis-deployment/qgis-deployment-toolbelt-cli/branch/main/graph/badge.svg?token=ZHGRNMA7TV)](https://codecov.io/gh/qgis-deployment/qgis-deployment-toolbelt-cli)\n[![\ud83d\udce6 Build & \ud83d\ude80 Release](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/actions/workflows/build_release.yml/badge.svg?branch=main)](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/actions/workflows/build_release.yml)\n\n[![PyPi version badge](https://badgen.net/pypi/v/qgis-deployment-toolbelt)](https://pypi.org/project/qgis-deployment-toolbelt/)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/qgis-deployment-toolbelt)](https://pypi.org/project/qgis-deployment-toolbelt/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/qgis-deployment-toolbelt)](https://pypi.org/project/qgis-deployment-toolbelt/)\n\n**QGIS Deployment Toolbelt (QDT)** is a cross-platform (primarily Windows-focused) command-line tool that streamlines the deployment and management of **QGIS profiles**, **plugins**, and related settings within organizations.\n\nIt helps **standardize** user environments, **simplify** updates, and **integrate** with IT deployment strategies like **GPO**, **SCCM**, or **InTune**.\n\n## \u2b50 Why QDT?\n\n- Save hours of manual QGIS configuration and profile management\n- Reduce configuration errors and user friction\n- Scale QGIS deployments in professional environments easily\n- Reconciling GIS service expectations and IT constraints\n- Community driven development and developed by experienced QGIS teams (especially [Oslandia](https://oslandia.com/))\n\nCome, talk and ask, we're a friendly (small) group of persons behind:\n\n- GitHub [Issues](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/issues) and [Discussions](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/discussions)\n- Matrix channel: <https://matrix.to/#/#qdt:matrix.org>\n\n### \ud83d\ude80 They use and trust QDT\n\nHere comes some of known organization which do use QDT to deploy QGIS profiles seamlessly:\n\n<!-- markdownlint-disable MD033 -->\n\n| [ISL Ing\u00e9nierie](https://isl.fr/) | [EP Loire](https://www.eptb-loire.fr/) | [M\u00e9tropole Grand Lyon](https://www.grandlyon.com/) | [D\u00e9partement de la Loire](https://www.loire.fr/) | [Grenoble Alpes M\u00e9tropole](https://www.grenoblealpesmetropole.fr/) | [LPO Auvergne Rh\u00f4ne Alpes](https://auvergne-rhone-alpes.lpo.fr/) | [ANFSI](https://www.linkedin.com/company/anfsi/about/) | [EP Eaux et Vilaine](https://www.eaux-et-vilaine.bzh/) | [M\u00e9tropole Aix Marseille Provence](https://ampmetropole.fr/) |\n| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |\n| <img src=\"./docs/static/logo_isl.png\" max-width=100 alt=\"logo ISL\" >  | <img src=\"./docs/static/logo_etablissement_public_loire.png\" max-width=100 alt=\"logo EP Loire\" > | <img src=\"./docs/static/logo_lyon.png\" max-width=100 alt=\"logo\" > | <img src=\"./docs/static/logo_cd-loire.png\" max-width=100 alt=\"logo\" > | <img src=\"./docs/static/logo_grenoble.png\" max-width=100 alt=\"logo\" > | <img src=\"./docs/static/logo_lpo.png\" max-width=100 alt=\"logo\" > | <img src=\"./docs/static/logo_anfsi.png\" max-width=100 alt=\"logo\" > | <img src=\"./docs/static/logo_eaux-et-vilaine.png\" max-width=100 alt=\"logo\" > | <img src=\"./docs/static/logo_amp.png\" max-max-width=100 alt=\"logo\" > |\n\nSee [more in documentation](https://qgis-deployment.github.io/qgis-deployment-toolbelt-cli/misc/references.html).\n\n<!-- markdownlint-enable MD033 -->\n\n## \u2728 Features\n\n- **Manage QGIS profiles easily**: define, store, and deploy profiles with a simple `profile.json` file. You can also use the [Profile Manager plugin](https://plugins.qgis.org/plugins/profile_manager/) to export your existing profiles right from QGIS.\n- **Version control integration**: Git-powered backend for tracking changes and enabling collaborative profile management.\n- **IT-friendly**: designed to work with Active Directory, GPOs, SCCM, InTune, and other enterprise tools.\n- **Seamless user experience**: deliver a consistent QGIS experience across your organization with minimal friction.\n- **Advanced configuration handling**: use variabilized `QGIS3.ini` files to handle dynamic or environment-specific settings.\n- **Conditional deployments**: deploy specific profiles based on rules, environment variables, or user criteria.\n- **Optimized plugin management**: reduce bandwidth usage by rationalizing plugin downloads and installations.\n\n## \ud83d\ude80 Try it quickly\n\nYou have multiple options to try QDT:\n\n- Using Python and the official modern CLI installer [pipx](https://pipx.pypa.io/):\n\n    ```sh\n    pipx run qgis-deployment-toolbelt -s https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/raw/main/examples/scenarios/demo-scenario.qdt.yml\n    ```\n\n- Using Python and the official package installer `pip`:\n\n    ```sh\n    pip install qgis-deployment-toolbelt\n    qdt -s https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/raw/main/examples/scenarios/demo-scenario.qdt.yml\n    ```\n\n- Using a pre-built executable (downloadable [through releases assets](https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/releases/latest)). For example on Windows:\n\n    ```powershell\n    ./Windows_QGISDeploymentToolbelt_0-37-0.exe  -s https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/raw/main/examples/scenarios/demo-scenario.qdt.yml\n    ```\n\nOnce completed, check:\n\n- The **Start menu** / **Desktop** for new shortcuts.\n- The **QGIS Profiles menu** for new profiles.\n\n![QGIS - List of profiles with ones added by QDT demonstration scenario](./docs/static/examples_qgis_profiles_menu.png)\n\nSplash screen when launching the **Demo Profile**:\n\n![QGIS splash screen - QDT Demo Profile](./examples/profiles/demo/images/splash.png)\n\nSplash screen for the **Viewer Profile**:\n\n![QGIS splash screen - QDT Viewer Profile](./examples/profiles/Viewer%20Mode/images/splash.png)\n\nHave you tried it on Linux? Well, you should find an additional profile simply named \"QDT Only Linux\".\n\n> [!TIP]\n> **Interested**? For further details, [read the documentation](https://qgis-deployment.github.io/qgis-deployment-toolbelt-cli/) :books:.\n\n## \ud83e\udd1d Contribute\n\nWant to help? Come on it's definitely open, everything here is under [Apache 2.0 license](./LICENSE).\n\nCheck out the [contribution guide and \"Development\" section in the documentation](https://qgis-deployment.github.io/qgis-deployment-toolbelt-cli/development/contribute.html).\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "QGIS deployment toolbelt is a CLI (Command Line Interface) to perform redundant operations after a QGIS deployment, managing QGIS profiles, plugins, environment variables, start menu / desktop shortcuts and many things to rationalize your QGIS installations.",
    "version": "0.40.0",
    "project_urls": {
        "Changelog": "https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/blob/main/CHANGELOG.md",
        "Documentation": "https://qgis-deployment.github.io/qgis-deployment-toolbelt-cli/",
        "Homepage": "https://qgis-deployment.github.io/qgis-deployment-toolbelt-cli/",
        "Issues": "https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/issues",
        "Source": "https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli.git",
        "releasenotes": "https://github.com/qgis-deployment/qgis-deployment-toolbelt-cli/releases/latest"
    },
    "split_keywords": [
        "gis",
        " qgis",
        " cli",
        " deployment",
        " profiles",
        " qdt"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9a6bf763f6384006881d8cc3a504187cfea381f4594cba805bca96eb7a71f227",
                "md5": "9d3d831141b892118072e1176a7acbb0",
                "sha256": "d4f5d44e9b13408a369386fc0ad446239e959dbd935c2b220c1d44522fd21867"
            },
            "downloads": -1,
            "filename": "qgis_deployment_toolbelt-0.40.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9d3d831141b892118072e1176a7acbb0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.10",
            "size": 114402,
            "upload_time": "2025-10-21T14:46:46",
            "upload_time_iso_8601": "2025-10-21T14:46:46.954378Z",
            "url": "https://files.pythonhosted.org/packages/9a/6b/f763f6384006881d8cc3a504187cfea381f4594cba805bca96eb7a71f227/qgis_deployment_toolbelt-0.40.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2865f70934a72980f92f7ffd0a9544f4f68cc4c568162bb95fc68a72737823d9",
                "md5": "a0aa17a1ca45c9d84c123c03f1188074",
                "sha256": "75a29aceae2d09d274cd80b13548ffb25ed942f92a4c1a83571311bb0b54d9ec"
            },
            "downloads": -1,
            "filename": "qgis_deployment_toolbelt-0.40.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a0aa17a1ca45c9d84c123c03f1188074",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.10",
            "size": 13702312,
            "upload_time": "2025-10-21T14:46:48",
            "upload_time_iso_8601": "2025-10-21T14:46:48.915920Z",
            "url": "https://files.pythonhosted.org/packages/28/65/f70934a72980f92f7ffd0a9544f4f68cc4c568162bb95fc68a72737823d9/qgis_deployment_toolbelt-0.40.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-21 14:46:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "qgis-deployment",
    "github_project": "qgis-deployment-toolbelt-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "qgis-deployment-toolbelt"
}
        
Elapsed time: 1.82474s