{"id":18209863,"url":"https://github.com/devon-mar/netbox-kea","last_synced_at":"2026-01-18T02:56:55.361Z","repository":{"id":164639174,"uuid":"640085269","full_name":"devon-mar/netbox-kea","owner":"devon-mar","description":"Manage Kea DHCP leases in NetBox.","archived":false,"fork":false,"pushed_at":"2024-05-22T18:37:26.000Z","size":473,"stargazers_count":49,"open_issues_count":3,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-05-22T18:39:08.772Z","etag":null,"topics":["netbox","netbox-plugin"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devon-mar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-13T00:30:17.000Z","updated_at":"2024-05-28T19:12:48.610Z","dependencies_parsed_at":"2023-12-11T02:24:48.999Z","dependency_job_id":"5394be1b-ea40-4869-bb2c-416ab1f53be0","html_url":"https://github.com/devon-mar/netbox-kea","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devon-mar%2Fnetbox-kea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devon-mar%2Fnetbox-kea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devon-mar%2Fnetbox-kea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devon-mar%2Fnetbox-kea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devon-mar","download_url":"https://codeload.github.com/devon-mar/netbox-kea/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222858306,"owners_count":17048452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["netbox","netbox-plugin"],"created_at":"2024-11-03T15:00:43.398Z","updated_at":"2026-01-18T02:56:55.348Z","avatar_url":"https://github.com/devon-mar.png","language":"Python","funding_links":[],"categories":["Plugins"],"sub_categories":[],"readme":"# NetBox plugin for the Kea DHCP server\n\nThis plugin allows you to view Kea status, leases and subnets in NetBox. Go directly from a NetBox device/VM to a DHCP lease and back!\n\n## Features\n\n- Uses the Kea management API\n- View Kea daemon statuses.\n- Supports Kea's DHCPv4 and DHCPv6 servers.\n- View, delete, export and search for DHCP leases.\n- Search for NetBox devices/VMs directly from DHCP leases.\n- View DHCP subnets from Kea's configuration.\n- REST API and GraphQL support for managing Server objects.\n\n![Screenshot of DHCP leases](images/leases.png)\n\n## Limitations\n\n- Due to limitations in the Kea management API, pagination is only supported when searching for leases by subnet.\n  Additionally, you can only go forwards, not backwards.\n\n- Searching for leases by subnet ID does not support pagination. This may be an expensive operation depending on the subnet size.\n\n- Kea doesn't provide a way to get a list of subnets without an additional hook library.\n  Thus, this plugin lists subnets using the `config-get` command. This means that the entire config will be fetched just to get the configured subnets!\n  This may be an expensive operation.\n\n## Requirements\n\n- NetBox 4.0, 4.1, 4.2, 4.3 or 4.4\n- [Kea Control Agent](https://kea.readthedocs.io/en/latest/arm/agent.html)\n- [`lease_cmds`](https://kea.readthedocs.io/en/latest/arm/hooks.html#lease-cmds-lease-commands-for-easier-lease-management) hook library\n\n## Compatibility\n\n- This plugin is tested with Kea v2.4.1 with the `memfile` lease database.\n  Other versions and lease databases may also work.\n\n## Installation\n\n1. Add `netbox-kea` to `local_requirements.txt`.\n\n2. Enable the plugin in `configuration.py`\n    ```python\n    PLUGINS = [\"netbox_kea\"]\n    ```\n3. Run `./manage.py migrate`\n\n## Custom Links\n\nYou can add custom links to NetBox models to easily search for leases.\n\nMake sure to replace `\u003cKea Server ID\u003e` in the link URL with the object ID of your Kea server. To find a server's ID, open the page for the server\nand look at the top right corner for `netbox_kea.server:\u003cServer ID Here\u003e`.\n\n### Show DHCP leases for a prefix\n\n**Content types**: `IPAM \u003e Prefix`\n\n**Link URL**: `https://netbox.example.com/plugins/kea/servers/\u003cKea Server ID\u003e/leases{{ object.prefix.version }}/?q={{ object.prefix }}\u0026by=subnet`\n\n### Show DHCP leases for a device/VM interface (by MAC):\n\n**Content types**: `DCIM \u003e Interface`, `Virtualization \u003e Interface`\n\n**Link URL (DHCPv4)**: `https://netbox.example.com/plugins/kea/servers/\u003cKea Server ID\u003e/leases4/?q={{ object.mac_address }}\u0026by=hw`\n\n**Link URL (DHCPv6)**: `https://netbox.example.com/plugins/kea/servers/\u003cKea Server ID\u003e/leases6/?q={{ object.mac_address }}\u0026by=hw`\n\n### Show DHCP leases for a device/VM (by name):\n\n**Content types**: `DCIM \u003e Device`, `Virtualization \u003e Virtual Machine`\n\n**Link URL (DHCPv4)**: `https://netbox.example.com/plugins/kea/servers/\u003cKea Server ID\u003e/leases4/?q={{ object.name|lower }}\u0026by=hostname`\n\n**Link URL (DHCPv4)**: `https://netbox.example.com/plugins/kea/servers/\u003cKea Server ID\u003e/leases6/?q={{ object.name|lower }}\u0026by=hostname`\n\nYou may also use a custom field by replacing `{{ object.name|lower }}` with `{{ object.cf.\u003cyour custom field\u003e|lower }}`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevon-mar%2Fnetbox-kea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevon-mar%2Fnetbox-kea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevon-mar%2Fnetbox-kea/lists"}