zabbixci


Namezabbixci JSON
Version 0.3.11 PyPI version JSON
download
home_pageNone
SummarySource control for Zabbix templates in Git
upload_time2025-08-19 09:04:33
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords zabbix git source control templates
VCS
bugtrack_url
requirements aiohappyeyeballs aiohttp aiosignal attrs cffi frozenlist idna multidict propcache pycparser pygit2 regex ruamel-yaml ruamel-yaml-clib typing-extensions wand yarl zabbix-utils
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![ZabbixCI cog logo](https://raw.githubusercontent.com/retigra/zabbixci/main/logo.png "ZabbixCI logo")

![PyPI - Version](https://img.shields.io/pypi/v/zabbixci)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/retigra/ZabbixCI/pypi.yml?label=pypi%20build)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/retigra/ZabbixCI/ghcr.yaml?label=docker%20build)

> [!WARNING]
> This project is under active development, the code in the main branch should
> be relatively stable but things might break every now and then. The releases
> that can be installed with `pip` are currently stable enough for testing. If
> you run into unexpected bugs, please create an
> [issue](https://github.com/retigra/ZabbixCI/issues/new). For questions about
> usage, please start a
> [discussion](https://github.com/retigra/ZabbixCI/discussions/new?category=q-a).

# ZabbixCI

ZabbixCI is a tool that adds continuous integration to Zabbix, allowing you to
synchronize Zabbix assets with a Git repository. By using the Zabbix API,
ZabbixCI can create, update, and delete assets across multiple Zabbix servers.

> [!NOTE]
> ZabbixCI has no affiliation with [Zabbix SIA](https://www.zabbix.com).

## Features

ZabbixCI provides the following features:

- Easily installable through pip or run it as a container image
- Fully configurable through cli arguments, config file and/or environment
  variables
- Supports HTTP(S) and SSH auth for Git
- Export assets from Zabbix and push them to Git
- Pull assets from Git and import them in Zabbix
- Only changed or new assets will be processed during Git push or Zabbix import
  actions
- Removes deleted assets automatically (unless black- or whitelisting is used)
- Use dry-run to verify behavior without changes to Zabbix or Git
- Build with parallelization in mind to speed up the process (can be scaled for
  your needs)
- (Optional) Support for private CA servers to verify certificates
- (Optional) Allow black-/whitelisting of assets (supports regexp)
- (Optional) Use separate branches for push and pull transactions

### Additional template features

- Sync your templates with Git
- Built-in Zabbix version compatibility checking
- (Optional) Automatically populate empty vendor field with your own string
- (Optional) Allow automatic versioning of exported templates based on
  timestamps

### Additional image (icons and backgrounds) features

- Sync your map images with Git
- Sync your icon-maps with Git
- Dynamically generate icons and backgrounds in predefined sizes
- Use `.png` or `.svg` files as sources for image generation

## Installation

ZabbixCI is available on [PyPI](https://pypi.org/project/zabbixci/) and can be
installed using pip:

```bash
pip install zabbixci
```

Alternatively, you can use a container image to run ZabbixCI, see the available
[container images](https://github.com/retigra/ZabbixCI/pkgs/container/zabbixci).
See the
[Containerized Deployment](https://github.com/retigra/ZabbixCI/blob/main/docs/Containerized.md)
documentation for more information.

## Configuration

ZabbixCI requires parameters to be set as command line arguments, a yaml
configuration or as environment variables. See the
[example configuration file](https://github.com/retigra/ZabbixCI/tree/main/docs/config.yaml).

We recommend passing environment variables when using the container image. Feel
free to use the method that best suits your workflow.

## Usage

We have a
[quickstart tutorial](https://github.com/retigra/ZabbixCI/tree/main/docs/tutorials/quickstart.md)
for first time users. Please see the
[Docs](https://github.com/retigra/ZabbixCI/tree/main/docs/README.md) for
extended details if needed.

# License

This project is licensed under AGPL-3.0, see
[LICENSE](https://github.com/retigra/ZabbixCI/tree/main/LICENSE.txt) for more
information.

# Contributing

Contributions are welcome! Please take a look at the following guidelines:

- Commit messages should follow the [Gitmoji](https://gitmoji.dev/) convention
  or prefix with types (feat:, fix:, style:, etc.).
- The codebase uses [ruff](https://docs.astral.sh/ruff/) for formatting and
  linting.

## Star History

> [!NOTE]
> If you like this project, please consider starring it on GitHub. ❤️

<a href="https://star-history.com/#retigra/ZabbixCI&Date">
 <picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=retigra/ZabbixCI&type=Date&theme=dark" />
   <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=retigra/ZabbixCI&type=Date" />
   <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=retigra/ZabbixCI&type=Date" />
 </picture>
</a>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "zabbixci",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": "Wouter de Bruijn <wouter.debruijn@retigra.nl>, Raymond Kuiper <raymond.kuiper@retigra.nl>",
    "keywords": "zabbix, git, source control, templates",
    "author": null,
    "author_email": "Retigra <info@retigra.nl>",
    "download_url": "https://files.pythonhosted.org/packages/b4/69/bdddf82b50fe5ffa7cb1265230f1c18359fd1dc847330fda9b0bc8d1d58a/zabbixci-0.3.11.tar.gz",
    "platform": null,
    "description": "![ZabbixCI cog logo](https://raw.githubusercontent.com/retigra/zabbixci/main/logo.png \"ZabbixCI logo\")\n\n![PyPI - Version](https://img.shields.io/pypi/v/zabbixci)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/retigra/ZabbixCI/pypi.yml?label=pypi%20build)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/retigra/ZabbixCI/ghcr.yaml?label=docker%20build)\n\n> [!WARNING]\n> This project is under active development, the code in the main branch should\n> be relatively stable but things might break every now and then. The releases\n> that can be installed with `pip` are currently stable enough for testing. If\n> you run into unexpected bugs, please create an\n> [issue](https://github.com/retigra/ZabbixCI/issues/new). For questions about\n> usage, please start a\n> [discussion](https://github.com/retigra/ZabbixCI/discussions/new?category=q-a).\n\n# ZabbixCI\n\nZabbixCI is a tool that adds continuous integration to Zabbix, allowing you to\nsynchronize Zabbix assets with a Git repository. By using the Zabbix API,\nZabbixCI can create, update, and delete assets across multiple Zabbix servers.\n\n> [!NOTE]\n> ZabbixCI has no affiliation with [Zabbix SIA](https://www.zabbix.com).\n\n## Features\n\nZabbixCI provides the following features:\n\n- Easily installable through pip or run it as a container image\n- Fully configurable through cli arguments, config file and/or environment\n  variables\n- Supports HTTP(S) and SSH auth for Git\n- Export assets from Zabbix and push them to Git\n- Pull assets from Git and import them in Zabbix\n- Only changed or new assets will be processed during Git push or Zabbix import\n  actions\n- Removes deleted assets automatically (unless black- or whitelisting is used)\n- Use dry-run to verify behavior without changes to Zabbix or Git\n- Build with parallelization in mind to speed up the process (can be scaled for\n  your needs)\n- (Optional) Support for private CA servers to verify certificates\n- (Optional) Allow black-/whitelisting of assets (supports regexp)\n- (Optional) Use separate branches for push and pull transactions\n\n### Additional template features\n\n- Sync your templates with Git\n- Built-in Zabbix version compatibility checking\n- (Optional) Automatically populate empty vendor field with your own string\n- (Optional) Allow automatic versioning of exported templates based on\n  timestamps\n\n### Additional image (icons and backgrounds) features\n\n- Sync your map images with Git\n- Sync your icon-maps with Git\n- Dynamically generate icons and backgrounds in predefined sizes\n- Use `.png` or `.svg` files as sources for image generation\n\n## Installation\n\nZabbixCI is available on [PyPI](https://pypi.org/project/zabbixci/) and can be\ninstalled using pip:\n\n```bash\npip install zabbixci\n```\n\nAlternatively, you can use a container image to run ZabbixCI, see the available\n[container images](https://github.com/retigra/ZabbixCI/pkgs/container/zabbixci).\nSee the\n[Containerized Deployment](https://github.com/retigra/ZabbixCI/blob/main/docs/Containerized.md)\ndocumentation for more information.\n\n## Configuration\n\nZabbixCI requires parameters to be set as command line arguments, a yaml\nconfiguration or as environment variables. See the\n[example configuration file](https://github.com/retigra/ZabbixCI/tree/main/docs/config.yaml).\n\nWe recommend passing environment variables when using the container image. Feel\nfree to use the method that best suits your workflow.\n\n## Usage\n\nWe have a\n[quickstart tutorial](https://github.com/retigra/ZabbixCI/tree/main/docs/tutorials/quickstart.md)\nfor first time users. Please see the\n[Docs](https://github.com/retigra/ZabbixCI/tree/main/docs/README.md) for\nextended details if needed.\n\n# License\n\nThis project is licensed under AGPL-3.0, see\n[LICENSE](https://github.com/retigra/ZabbixCI/tree/main/LICENSE.txt) for more\ninformation.\n\n# Contributing\n\nContributions are welcome! Please take a look at the following guidelines:\n\n- Commit messages should follow the [Gitmoji](https://gitmoji.dev/) convention\n  or prefix with types (feat:, fix:, style:, etc.).\n- The codebase uses [ruff](https://docs.astral.sh/ruff/) for formatting and\n  linting.\n\n## Star History\n\n> [!NOTE]\n> If you like this project, please consider starring it on GitHub. \u2764\ufe0f\n\n<a href=\"https://star-history.com/#retigra/ZabbixCI&Date\">\n <picture>\n   <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=retigra/ZabbixCI&type=Date&theme=dark\" />\n   <source media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=retigra/ZabbixCI&type=Date\" />\n   <img alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=retigra/ZabbixCI&type=Date\" />\n </picture>\n</a>\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Source control for Zabbix templates in Git",
    "version": "0.3.11",
    "project_urls": {
        "Changelog": "https://github.com/retigra/zabbixci/releases",
        "Discussions": "https://github.com/retigra/ZabbixCI/discussions",
        "Homepage": "https://github.com/retigra/zabbixci",
        "Issues": "https://github.com/retigra/zabbixci/issues",
        "Repository": "https://github.com/retigra/zabbixci"
    },
    "split_keywords": [
        "zabbix",
        " git",
        " source control",
        " templates"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "30f251bb249f6ba8db1f718ba96363f9b79949fb27587753454aa0c8b9c22633",
                "md5": "3b60b0ec0de22ce559f4be6589416afc",
                "sha256": "f3dba753430a517b5216b5e91e6c91bf32745131f308c9f7c2324b9fa4b9c73c"
            },
            "downloads": -1,
            "filename": "zabbixci-0.3.11-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3b60b0ec0de22ce559f4be6589416afc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 50719,
            "upload_time": "2025-08-19T09:04:32",
            "upload_time_iso_8601": "2025-08-19T09:04:32.377135Z",
            "url": "https://files.pythonhosted.org/packages/30/f2/51bb249f6ba8db1f718ba96363f9b79949fb27587753454aa0c8b9c22633/zabbixci-0.3.11-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b469bdddf82b50fe5ffa7cb1265230f1c18359fd1dc847330fda9b0bc8d1d58a",
                "md5": "3ed7436c0f6c34996eeca1b1fc396add",
                "sha256": "0fc99c5b093463cd87515229c84354b1923a71629aa9b3f375250cb673f7916f"
            },
            "downloads": -1,
            "filename": "zabbixci-0.3.11.tar.gz",
            "has_sig": false,
            "md5_digest": "3ed7436c0f6c34996eeca1b1fc396add",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 266205,
            "upload_time": "2025-08-19T09:04:33",
            "upload_time_iso_8601": "2025-08-19T09:04:33.576838Z",
            "url": "https://files.pythonhosted.org/packages/b4/69/bdddf82b50fe5ffa7cb1265230f1c18359fd1dc847330fda9b0bc8d1d58a/zabbixci-0.3.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-19 09:04:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "retigra",
    "github_project": "zabbixci",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "aiohappyeyeballs",
            "specs": [
                [
                    "==",
                    "2.6.1"
                ]
            ]
        },
        {
            "name": "aiohttp",
            "specs": [
                [
                    "==",
                    "3.12.15"
                ]
            ]
        },
        {
            "name": "aiosignal",
            "specs": [
                [
                    "==",
                    "1.4.0"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "25.3.0"
                ]
            ]
        },
        {
            "name": "cffi",
            "specs": [
                [
                    "==",
                    "1.17.1"
                ]
            ]
        },
        {
            "name": "frozenlist",
            "specs": [
                [
                    "==",
                    "1.7.0"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.10"
                ]
            ]
        },
        {
            "name": "multidict",
            "specs": [
                [
                    "==",
                    "6.6.3"
                ]
            ]
        },
        {
            "name": "propcache",
            "specs": [
                [
                    "==",
                    "0.3.2"
                ]
            ]
        },
        {
            "name": "pycparser",
            "specs": [
                [
                    "==",
                    "2.22"
                ]
            ]
        },
        {
            "name": "pygit2",
            "specs": [
                [
                    "==",
                    "1.18.1"
                ]
            ]
        },
        {
            "name": "regex",
            "specs": [
                [
                    "==",
                    "2025.7.34"
                ]
            ]
        },
        {
            "name": "ruamel-yaml",
            "specs": [
                [
                    "==",
                    "0.18.14"
                ]
            ]
        },
        {
            "name": "ruamel-yaml-clib",
            "specs": [
                [
                    "==",
                    "0.2.12"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    "==",
                    "4.14.1"
                ]
            ]
        },
        {
            "name": "wand",
            "specs": [
                [
                    "==",
                    "0.6.13"
                ]
            ]
        },
        {
            "name": "yarl",
            "specs": [
                [
                    "==",
                    "1.20.1"
                ]
            ]
        },
        {
            "name": "zabbix-utils",
            "specs": [
                [
                    "==",
                    "2.0.3"
                ]
            ]
        }
    ],
    "lcname": "zabbixci"
}
        
Elapsed time: 2.42009s