Software Catalog

Software Catalog #

Every piece of software the mobile site runs or is built with: the version in use, its license, and who supports it. Grouped by substrate layer, like the rest of this section. Why each was chosen is on its platform page or ADR; this page is the list.

This page is the system of record for versions. Other pages name the software and link here instead of stating its version. They keep a version only where the context needs it:

  • a change or incident record, which states what was true at the time
  • a behavior tied to a version, such as “Grafana 13 cannot delete an organization”
  • a minimum requirement, such as MicroPython 1.23 or later
  • a literal value in a procedure, such as a firmware upgrade chain or an image tag

When a change upgrades something, it updates this page. Versions are gathered by hand today: Software Discovery is the roadmap item for scanning the site instead.

As of 2026-09-26.


How to read this page #

Version source says how the version is known:

SourceMeaning
PinDeclared in inventory, a role default, a lockfile or a Makefile. What the automation deploys.
ObservedSeen on the running system and written down, with the date and record.
BundledShips inside another item’s release and follows it. Its own version is not tracked separately.
Not recordedNothing in the repositories or the records says. Listed under Gaps.

Support uses five terms:

SupportMeaning
CommunityOpen source, with community support only. No vendor sells support for it.
Community, commercial availableOpen source. The vendor sells support or a subscription, and Deevnet doesn’t buy it.
Vendor, no contractProprietary, free of charge. The vendor ships updates; there is no support contract.
UnmaintainedUpstream no longer ships updates for what we run.
In-houseDeevnet’s own. Supported by the operator.

Third-party licenses are the upstream project’s. In-house licenses are what the repository declares.


Network #

Core router: OPNsense (dv02cor002p01) #

ComponentVersionLicenseSupportVersion source
OPNsense26.7.3_11BSD-2-ClauseCommunity, commercial available (Deciso)Observed 2026-09-19 ( CHG-0007) and 2026-09-21 ( INC-0004)
FreeBSD basenot recordedBSD-2-ClauseBundledBundled with OPNsense

Bundled services in use. What the deevnet.net roles configure, taken from the OPNsense APIs they call. Each follows the OPNsense release.

ServiceUsed forLicenseConfigured by
Kea DHCPv4DHCP on every segment, and static reservations. ISC dhcpd and dnsmasq are not used on the router.MPL-2.0opnsense_dhcp (/api/kea/…)
UnboundThe site resolver: host overrides, aliases, and forwarding of tenant zones to PowerDNSBSD-3-Clauseopnsense_dns (/api/unbound/…)
pf (through the OPNsense filter and alias APIs)Zone policy, and the deevnet_private aliasBSDopnsense_firewall (/api/firewall/…)
VLAN interfacesOne per segment, on re0BSD-2-Clauseopnsense_vlans (/api/interfaces/…)
Gateways and static routesThe tenant fabric route 10.20.128.0/18BSD-2-Clauseopnsense_routes (/api/routing/…, /api/routes/…)
Configuration backupPre-change backupsBSD-2-ClauseMigration playbooks (/api/core/backup/…)

Plugins.

PluginStateLicenseNotes
os-wolRequired, but whether it is installed is not recordedBSD-2-ClauseWake-on-LAN for the Builder and both hypervisors (opnsense_wol)
os-realtek-reProposed, not installedBSD-2-ClauseVendor NIC driver: an open corrective action on INC-0004

No other plugins are used. The collection has no plugin-install tasks.

Switching, wireless and edge #

ComponentWhereVersionLicenseSupportVersion source
TP-Link SG2218 firmwareAccess switch dv02acc001p01 (hardware 1.20)1.20.24 Build 20260509; 1.20.1 kept in the other image slotProprietaryVendor, no contractObserved 2026-09-16 ( CHG-0006)
TP-Link EAP650-Outdoor firmwareAP dv02wap001p01 (v1.0)1.3.11 Build 20260703ProprietaryVendor, no contractObserved 2026-09-15 ( CHG-0005)
Omada Software ControllerContainer on dv02nms001v01; cold spare on the Builder6.3.0.45Proprietary, free of chargeVendor, no contractPin (omada_image_tag); observed 2026-09-15 ( CHG-0008)
Omada container imageAs abovembentley/omada-controller:6.3.0.45Community packaging of the vendor’s softwareCommunityPin. Fallbacks 6.2.14.11 and 6.1 are mirrored
GL.iNet firmwareTravel router dv02edg001p01 (GL-AXT1800)not recorded. The platform page says “OpenWrt 23.05-SNAPSHOT”, undatedOpenWrt base GPL-2.0; GL.iNet additions proprietaryVendor, no contractNot recorded. Not managed by automation

Management Plane #

Management hypervisor (dv02hyp001p01) #

ComponentVersionLicenseSupportVersion source
Proxmox VE8.4.1 (see Gaps)AGPL-3.0Community, commercial available. The nodes use the no-subscription repositoryObserved, undated (platform page, roadmap)
Debian12 (Bookworm)Free software, per packageCommunityBundled with Proxmox VE 8
Linux kernel6.8.12GPL-2.0BundledObserved 2026-09-15 ( CHG-0008)

Domain VMs #

Every domain VM is Fedora 44 from the template fedora-server-44-1.7, and runs its services as Podman containers ( ADR-0013). Image tags are pinned in the role defaults and mirrored on the Builder as tarballs.

ComponentVMVersionLicenseSupportVersion source
Fedora Serverall44 (template build 1.7). Kernel 7.2.5, systemd 259Free software, per package (Fedora Project)CommunityPin (deevnet_fedora_current); observed 2026-09-15/21
Podmanallnot recorded (the Fedora 44 package)Apache-2.0CommunityNot recorded
OpenBaodv02idn001v012.6.2MPL-2.0Community (Linux Foundation project)Pin; staged 2026-09-17 ( CHG-0010)
PowerDNS Authoritativedv02idn001v014.9.17GPL-2.0Community, commercial available (PowerDNS)Pin
Deevnet APIdv02prv001v01v0.8.0No license fileIn-housePin; deployed 2026-09-24 ( CHG-0024)
PostgreSQLdv02prv001v01 (the API), dv02msg001v01 (VerneMQ auth)17.11PostgreSQL LicenseCommunityPin
MinIOdv02prv001v01 (Terraform state)RELEASE.2025-09-07T16-13-09ZAGPL-3.0Unmaintained. The community edition was archived 2026-04-25, and the tag can no longer be pulledPin. Replacement decided in ADR-0026
Omada Software Controllerdv02nms001v016.3.0.45See Network
VerneMQdv02msg001v012.2.0, built from sourceApache-2.0 (source). Upstream binaries carry an EULA, which is why it is built hereCommunity, commercial available (Octavo Labs)Pin; observed 2026-09-20 ( CHG-0015)
MQTT log bridgedv02msg001v01v0.1.1not checked (its repository isn’t in this workspace)In-housePin; deployed 2026-09-22 ( CHG-0021)
VictoriaLogsdv02obs001v01v1.52.0Apache-2.0Community, commercial available (VictoriaMetrics)Pin; observed 2026-09-21 ( CHG-0018)
vmauthdv02obs001v01v1.152.0Apache-2.0Community, commercial available (VictoriaMetrics)Pin; observed 2026-09-21
Grafana OSSdv02obs001v0113.2.2AGPL-3.0Community, commercial available (Grafana Labs)Pin; deployed 2026-09-24 ( CHG-0024)
victoriametrics-logs-datasource plugindv02obs001v010.32.0not checkedCommunity, commercial available (VictoriaMetrics)Pin; observed 2026-09-24
nginx (tenant downloads)dv02obs001v011.29.1-alpineBSD-2-ClauseCommunity, commercial available (F5)Pin; deployed 2026-09-24 ( CHG-0025)
deevnet-log-userdv02obs001v01Built from the API’s tag; deployed as -latestNo license fileIn-houseNot pinned
(collector)dv02col001v01Built empty. vmagent is proposed in ADR-0023

Builder (dv00bld001p01) and the provisioner VMs #

ComponentVersionLicenseSupportVersion source
Fedora Workstation (Builder)“43 or later”. The exact release is not recordedFree software, per packageCommunityNot recorded
Fedora Server (dv02bld001v01, dv02bld002v01)44Free software, per packageCommunityPin
nginx (artifact server)Fedora packageBSD-2-ClauseCommunityNot pinned
tftp-server, syslinux, grub2 (PXE)Fedora packagesBSD / GPL-2.0 / GPL-3.0CommunityNot pinned
dnsmasqFedora package; installed but disabledGPL-2.0CommunityNot pinned

Tenant Compute #

Tenant hypervisor (dv02hyp002p02) #

ComponentVersionLicenseSupportVersion source
Proxmox VE9.2.11AGPL-3.0Community, commercial available. No-subscription repositoryObserved 2026-08-30 ( Hypervisor Uplift)
Debian13 (Trixie)Free software, per packageCommunityBundled with Proxmox VE 9
Proxmox SDN (libpve-network-perl)1.6.7AGPL-3.0BundledObserved 2026-08-30
FRR (EVPN, OpenFabric underlay)not recorded. frr-pythontools is 10.6.1-1+pve3GPL-2.0-or-laterCommunityObserved 2026-08-30 (pythontools only)
Tenant egress agentfollows deevnet.net 1.0.0Apache-2.0 (collection LICENSE)In-houseNot versioned

Raspberry Pi #

ComponentWhereVersionLicenseSupportVersion source
Ubuntudv02rpi004p0123.10Free software, per packageUnmaintained (end of life)Observed 2026-09-25 ( CHG-0027)
(OS)dv02rpi001p01, …002p01, …003p01not recordedNot recorded
Raspberry Pi OS Lite (arm64)Base of the image-factory Pi builds and the take-home pi-backend imageBookworm, 2025-11-24. Trixie 2025-11-24 is mirrored but unusedFree software, with some proprietary firmwareCommunity (Raspberry Pi Ltd)Pin

The take-home pi-backend image runs, as native binaries rather than containers:

ComponentVersionLicenseVersion source
VictoriaLogsv1.52.0Apache-2.0Pin
vmauth (vmutils)v1.152.0Apache-2.0Pin
Grafana OSS13.2.2AGPL-3.0Pin (sha256)
victoriametrics-logs-datasource0.32.0not checkedPin
deevnet-kitthe API’s tagNo license fileBuilt from the API repository
deevnet-log-bridge-latestnot checkedNot pinned
Mosquitto, PodmanBookworm packages (Podman 4.3)EPL-2.0 / EDL-1.0; Apache-2.0Not pinned

Build and Automation Tooling #

ComponentVersionLicenseSupportVersion source
ansible-corenot pinned. Collections require >=2.14GPL-3.0Community, commercial available (Red Hat)Not pinned
ansible.posix>=1.5.0GPL-3.0CommunityPin (constraint)
community.general>=8.0.0GPL-3.0CommunityPin (constraint). deevnet.builder uses it without declaring it
ansible.netcommon>=7.0.0GPL-3.0CommunityPin (constraint)
paramiko, proxmoxer, requestsparamiko >=2.12.0; others not pinnedLGPL-2.1; MIT; Apache-2.0CommunityPartly pinned
Terraform (Builder, fabric)not pinned. Configurations require >= 1.5; fabric state written by 1.14.3BUSL-1.1Vendor (HashiCorp), no contractNot pinned
Terraform (handed to tenants)1.16.4BUSL-1.1Vendor (HashiCorp), no contractPin (tenant downloads)
bpg/proxmox provider~> 0.101, locked 0.111.1MPL-2.0CommunityPin (lockfile)
grafana/grafana provider4.46.0MPL-2.0Community, commercial available (Grafana Labs)Pin (tenant downloads)
Packernot pinnedBUSL-1.1Vendor (HashiCorp), no contractNot pinned
hashicorp/proxmox Packer plugin~> 1MPL-2.0CommunityPin (constraint)
packer-builder-arm (Pi builds):latest containerApache-2.0CommunityNot pinned
GoAPI go 1.25.0, built with 1.25.9; provider go 1.25.5BSD-3-ClauseCommunityPin
terraform-plugin-frameworkv1.15.1MPL-2.0Community (HashiCorp)Pin (go.mod)
GoReleaserv2MITCommunity, commercial availablePin (major only)
Hugo (extended)0.140.1Apache-2.0CommunityPin (CI workflow, Builder)
hugo-book themev11.0.0-1-g24d3465MITCommunityPin (submodule commit)
GitHub Actionscheckout v4, configure-pages v5, upload-pages-artifact v3, deploy-pages v4MITVendor (GitHub)Pin (major only)

Tenant-Facing Tools #

What the site hands a tenant developer, from the tenant downloads.

ComponentVersionLicenseSupportVersion source
deevnet/deevnet providerv0.4.1No license fileIn-housePin (tenant downloads); tag
install-provider.sh, tenant-check.shship with the providerNo license fileIn-houseFollow the provider tag
Terraform1.16.4BUSL-1.1Vendor, no contractPin
grafana/grafana provider4.46.0MPL-2.0Community, commercial availablePin
MicroPython (Pico W)1.29.0MITCommunityPin
Raspberry Pi Imager2.0.11.1Apache-2.0Community (Raspberry Pi Ltd)Pin
Arduino IDE, ESP32 board package, PubSubClientnot recordedLGPL/GPL; LGPL-2.1; MITCommunityNot recorded

Deevnet’s Own Software #

RepositoryVersionLicenseWhat it builds
deevnet-provisioning-apitag v0.8.1, deployed v0.8.0No license fileThe API, deevnet-broker-account, deevnet-log-user, deevnet-kit (all share its tag)
terraform-provider-deevnettag v0.4.1No license fileThe provider, install-provider.sh, tenant-check.sh
deevnet-log-bridgev0.1.1 deployednot checkedThe MQTT log bridge
ansible-collection-deevnet.builder1.0.0, no tagsMITBuilder, artifact server, PXE roles
ansible-collection-deevnet.mgmt1.0.0, no tagsgalaxy.yml says MIT; LICENSE is Apache-2.0Management-plane roles
ansible-collection-deevnet.net1.0.0, no tagsgalaxy.yml says MIT; LICENSE is Apache-2.0Network roles, segment-check.sh, opnsense-diag.sh, the tenant egress agent
ansible-inventory-deevnetno tagsMITInventory
deevnet-image-factoryno tagsApache-2.0Packer and Pi images
deevnet-tenant-fabrictags tenant-module-v1.1.0 and earliernot checkedTenant fabric SDN (Terraform)
deevnet-docsno tagsApache-2.0This site

Gaps #

What this catalog could not settle, and what it found out of step. Each is a small follow-up.

Versions that conflict or are missing:

  • dv02hyp001p01’s Proxmox VE: “8.4.1” on the platform page and roadmap, but “8.4.21” in CHG-0008 (2026-09-15). One is a typo.
  • OPNsense 25.7.10 to 26.7.3: no change record covers the upgrade.
  • Not recorded (each is a collector on the Software Discovery roadmap): the FreeBSD base, Kea and Unbound versions (all readable with opnsense-version -v and pkg info, which opnsense-diag.sh already collects); whether os-wol is installed; the GL.iNet firmware; the frr package on dv02hyp002p02; Podman on the VMs and Builder; the Builder’s Fedora release; the OS on dv02rpi001p01 to …003p01.

Unpinned: ansible-core, Terraform and Packer on the Builder; packer-builder-arm:latest; tfplugindocs@latest; deevnet-log-user and deevnet-log-bridge deployed as -latest; tdemo’s deevnet/deevnet ~> 0.1 against an actual 0.4.x.

Licenses: deevnet.mgmt and deevnet.net declare MIT in galaxy.yml and ship an Apache-2.0 LICENSE. The API, the provider and the tenant repositories have no license file.

Unmaintained software still running: MinIO (archived upstream; ADR-0026) and Ubuntu 23.10 on dv02rpi004p01 ( CHG-0027 follow-ups).

Other pages that disagree with this one (facts, not versions):

  • Network Controllers: the controller “on the bootstrap node”. It moved to dv02nms001v01 in CHG-0008.
  • Access Switch: managed by “Omada API”. It is standalone, configured over CLI, and its adoption ( CHG-0009) is on hold.
  • The Proxmox ISO build and Build a Management Plane still default to PVE_ISO_VERSION=8.4-1, while the tenant hypervisor runs 9.
  • CHG-0018 says the hypervisors run Debian 12. dv02hyp002p02 runs Debian 13.
Page last modified: September 26, 2026