A rule-based and modular system to synchronize hosts between Checkmk, Netbox, and other systems. The main goal is the complete organization of hosts based on CMDB systems with flexible rules and automation.
- π Homepage
- π Documentation
- π Releases & Versioning β how to pick a stable version for production
- Overview
- Features
- Quick Start
- Supported Systems
- Installation
- Main Functions
- Screenshots
- Contributing
- License
CMDBsyncer is a powerful, web-based tool designed to solve the complex challenge of managing host inventories across multiple IT management systems. Whether you're synchronizing between Checkmk, Netbox, I-DOIT, or other platforms, CMDBsyncer provides a unified approach with rule-based automation.
- Centralized Management: Single interface for all your CMDB synchronization needs
- Rule-Based Logic: Flexible rules for host organization and attribute management
- Multi-Platform: Support for 15+ systems including Checkmk, Netbox, Ansible, and more
- Scalable: Tested with 140,000+ hosts
- Secure: Built-in authentication, 2FA, and encryption of sensitive data
Get started quickly using Docker Compose:
# Clone the repository
git clone https://github.com/your-username/cmdbsyncer.git
cd cmdbsyncer
# For production: check out the last released version.
# For testing the bleeding edge: stay on main.
git checkout stable
# Start the application
./helper up
# Access the container
./helper shell
# Create your first user
./helper create_user 'your-email@example.com'
# Access the web interface
# Open http://your-host:5003 in your browserThis runs a development version that you can use to test everything.
Rule-based synchronization configuration interface
Comprehensive debug and testing options
- π Web Interface - Complete web-based management with login, 2FA, and user management
- βοΈ Configuration Management - All configuration handled through the web interface (except initial installation)
- π Plugin API - Simple API to integrate custom data sources
- π Debug Tools - Various debug options available via the
./cmdbsyncercommand - π Security - Encryption of secrets and secure credential management
- β° Scheduling - Built-in cron management for automated synchronization
- π Monitoring - Integration with monitoring systems
- π― Template Support - Jinja2 templating for configuration and rules
- π REST API - Full REST API for automation and integration
- π Attribute Control - Rules based on host attributes
- βοΈ Attribute Rewrites - Dynamic modification of host attributes
- π Filters - Advanced filtering for hosts and attributes
- β‘ Action Rules - Automated actions in Ansible, Checkmk, Netbox, etc.
- π Inventory Source - Use CMDBsyncer as dynamic Ansible inventory
Complete lifecycle management for monitoring systems
- β Host Management - Full host lifecycle (creation, labels, folders, deletion, rules)
- π Scalability - Tested with more than 140,000 hosts
- π·οΈ Attribute Sync - Sync and update all host attributes, tags, and labels
- β‘ Performance - Full support of API bulk operations and multiprocessing
- π Folder Management - Complete Checkmk folder management with pool features
- π₯ Groups - Creation of host, contact, and service groups
- π― Tags - Create host tags and host tag groups
- π BI Integration - Create BI aggregations
- π Rules - Create all types of setup rules
- π Updates - Smart update controls to prevent excessive changes
- π€ Agents - Commands to activate configuration, bake and sign agents
- π€ User Management - Manage Checkmk users (create/delete/reset password)
- π¦ Inventory - Host attributes inventory for Ansible integration
- π Password Store - Create and manage encrypted password entries
- π― DCD Rules - Create Data Collection Rules
- π Version Detection - Automatic Checkmk version detection for correct API usage
Automation and configuration management
- π Inventory - Rule-based inventory source
- π₯οΈ Agent Management - Complete Checkmk agent management (Linux & Windows)
- Installation and TLS registration
- Bakery registration
- ποΈ Site Management - OMD site management (updates, creation)
- Automatic Checkmk version downloads
Network infrastructure management
- π Bidirectional Sync - Rule-based export and import of devices and VMs
- ποΈ Auto-Creation - Automatic category creation
- πΊοΈ Infrastructure - Export sites, interfaces, IPAM data
- π₯ Contacts - Contact management
- π Location Management - Comprehensive location handling
IT documentation and CMDB
- π Template-Based - Rule-based export and import using templates
- π Bidirectional - Full import/export capabilities
- π₯ Object Import - Import monitoring objects to sync with Checkmk
- π Limited Import - Basic import functionality
- π Device Import - Import devices and interface information
- π Host Management - Manage hosts based on CSV files
- β Data Enhancement - Add additional information from CSV files
- π₯ Object Import - Import objects from LDAP directories
- π Custom APIs - Import from custom REST API endpoints
- π File Import - Import JSON file structures
- βοΈ Cloud & On-Prem - Support for both deployment types
- π₯ Object Import - Import CMDB objects
- π Discovery Import - Import discovered objects
- π Attribute Management - Import and export VM attributes
- π Bidirectional - Full import/export to VMware VMs
- MySQL - Import and inventory database tables
- MSSQL/FreeTDS/ODBC - Support for all ODBC-based database connections
- Docker and Docker Compose
- Python 3.11+ (for development)
- Web browser (for the management interface)
-
Clone the repository and pick a version
git clone https://github.com/your-username/cmdbsyncer.git cd cmdbsyncer # Use the stable branch (last released version) for production: git checkout stable # β¦or pin to a specific release tag for reproducible deployments: # git checkout v3.12.12
See RELEASE.md for the full branching/versioning policy.
-
Configure environment
# Copy and edit configuration files cp docker-compose.prod.yml docker-compose.yml # Edit the configuration as needed
-
Start the application
docker-compose up -d
-
Create admin user
./helper create_user 'admin@your-domain.com'
For development and testing purposes:
# Start development environment
./helper up
# Access container shell
./helper shell
# Create test user
./helper create_user 'test@example.com'
# Access at http://localhost:5003- Memory: Minimum 2GB RAM, recommended 4GB+
- Storage: Minimum 10GB free space
- Network: HTTPS access to target systems (Checkmk, Netbox, etc.)
- Checkmk: All current versions (automatic detection)
- Netbox: v2.8+
- Ansible: v2.9+
- I-DOIT: v1.12+
- And many more - see full compatibility matrix
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow existing code style
- Add tests for new features
- Update documentation as needed
- Test with multiple target systems
The repository ships a pre-commit hook in .githooks/ that refreshes
application/buildinfo.txt, runs pylint on staged Python files, and executes
the unit-test suite before each commit. Activate it once per clone:
git config core.hooksPath .githooksThis project is licensed under the MIT License - see the LICENSE file for details.
- π Documentation: docs.cmdbsyncer.de
- π Homepage: cmdbsyncer.de
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
β If you find this project helpful, please give it a star! β