Skip to content

About

GO GLPI Agent

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

go-glpi-agent

One small binary that inventories Linux, Windows, FreeBSD and macOS into GLPI 10+
— no agent runtime, no Perl, no dependencies.

Release License Go Platforms

go-glpi-agent — bridge your devices to GLPI with the power of Go

A Go reimplementation of the FusionInventory/GLPI inventory agent. It collects local hardware and software inventory and sends it to a GLPI 10+ server using the native JSON protocol (with automatic fallback to the legacy OCS/FusionInventory XML), or writes it to a local file.

Why use it

  • 🚀 Single static binary — drop it in and run. No Perl, no modules, no pkg tree.
  • 💻 One agent, four OSes — Linux, Windows, FreeBSD and macOS from the same source.
  • 🔌 Drop-in for GLPI — reads the same agent.cfg as the Perl agent and reuses your existing device IDs, so hosts aren't re-created as new assets.
  • 📦 Native packages — .deb, .rpm, Arch .pkg.tar.zst, a Windows .zip and .msi (GPO/Intune-ready), a FreeBSD tarball, and a macOS .pkg/.dmg (Apple Silicon) — published on every release.
  • 🪶 Lightweight & quiet — runs on a schedule (systemd timer / Windows Service / cron), collects in parallel, and stays out of the way.

Quick start

1. Install (grab a package from Releases):

# Debian / Ubuntu
sudo dpkg -i go-glpi-agent_*_amd64.deb
# RHEL / Rocky / Alma / Fedora / openSUSE
sudo rpm -i go-glpi-agent-*.x86_64.rpm
# Arch
sudo pacman -U go-glpi-agent-*-x86_64.pkg.tar.zst

Windows: extract …_windows_amd64.zip and run install.ps1 (elevated), or deploy the …_x64.msi (msiexec /i …_x64.msi /qn SERVER=http://glpi/front/inventory.php — GPO/Intune/SCCM-ready). FreeBSD: extract …_freebsd_amd64.tar.gz and follow INSTALL.md. macOS (Apple Silicon): open go-glpi-agent_<version>_arm64.dmg and run the .pkg. (Intel Macs: build from source with make package-macos ARCH=x86_64 on an Intel host.)

2. Point it at your GLPI — edit /opt/go-glpi-agent/agent.cfg:

server = http://glpi.example.com/front/inventory.php
tag    = datacenter-1

3. Schedule it (one inventory per hour):

sudo systemctl enable --now go-glpi-agent.timer     # Linux
# Windows: install.ps1 already registered the Windows Service
# FreeBSD: enable the rc.d service or add a cron entry (see INSTALL.md)

That's it — a computer asset appears in GLPI on the next run. Want to test first? go-glpi-agent run --local /tmp/inv writes the inventory as XML without sending anything.

Supported platforms

OS Arch Inventory sources
Linux (16 distros) amd64 /sys, /proc, dmidecode, lsblk, lvs, dpkg/rpm/pacman
Windows 10/11 / Server amd64 WMI (Win32_*) + registry
FreeBSD 14 amd64 kenv (smbios), pkg, geom, sysctl, usbconfig
macOS 13+ arm64 (Intel from source) system_profiler, ioreg, sysctl, sw_vers

Validated against a real GLPI 10 across all four. The full collector matrix, per-OS install details, CLI/config reference, build instructions and architecture live in docs/REFERENCE.md.

Sister project: Dotnet GLPI Agent

An independent .NET 10 Windows-first agent lives under dotnet-glpi-agent/ (MSI + Windows Service + Vagrant lab). It does not replace this Go agent; see that README and OpenSpec change add-dotnet10-windows-agent.

Docs

License

License: GPLv2+.

About

GO GLPI Agent

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages