GitOps for Your Gadgets: Managing iOS Devices with Fleet
If you've ever had to manage a fleet of company iPhones, iPads, or MacBooks, you know the pain. Pushing a new Wi-Fi config, ensuring a security policy is applied, or just figuring out what software is installed where often involves clunky admin consoles, manual clicks, and a lot of sighing. What if you could manage devices like you manage infrastructure—declaratively, with code, and using Git as your source of truth?
That's the promise behind Fleet. It's an open-source platform that brings a GitOps-style workflow to device management. Instead of logging into a proprietary dashboard, you define your desired device state in a Git repository. Fleet handles the rest, making sure your actual devices match that declared state.
What It Does
Fleet is an open-source device management platform with a focus on transparency and developer-friendly workflows. At its core, it's a unified observability and control plane for your laptops, servers, and cloud instances. It collects detailed inventory data (what's installed, running, etc.) and allows you to enforce configurations and run queries across your entire device fleet.
While it manages many device types, its ability to handle Apple's iOS, iPadOS, and macOS through a GitOps model is a standout feature. You define policies and configurations as code, commit them, and Fleet reconciles the state across your registered devices.
Why It's Cool
The GitOps angle is the real game-changer here. For developers, this transforms device management from an opaque, manual IT task into a familiar, code-based process.
- Infrastructure as Code for Devices: Define your security policies, software restrictions, and settings in declarative YAML files. These live in your Git repo, giving you version history, peer review via pull requests, and clear audit trails for every change.
- Transparency and Control: Being open-source, you can see exactly how it works and contribute to its development. There's no black-box magic—just a clear, API-driven platform.
- Osquery Under the Hood: Fleet leverages osquery, a powerful tool that exposes your device operating system as a high-performance relational database. This means you can run SQL queries to ask complex questions of your fleet ("Show me all devices with a specific vulnerable software version") in real-time.
- Unified View: It consolidates management for laptops (macOS, Windows, Linux), servers, and mobile devices (iOS/iPadOS) into a single pane of glass, managed through a single GitOps workflow.
How to Try It
The quickest way to see Fleet in action is to check out their live demo, which lets you explore the interface with sample data: Fleet Live Demo
To get it running for yourself, you have a few solid options. The project's documentation is excellent and provides clear paths:
- Quick Install (macOS/Linux): They offer a one-liner install script to get Fleet up and running on your own hardware. It's the fastest way to a hands-on experience.
bash -c "$(curl -sSL https://raw.githubusercontent.com/fleetdm/fleet/main/tools/get-fleet.sh)" - Docker Compose: For a more containerized approach, a
docker-compose.ymlfile is provided to spin up both the Fleet server and its required MySQL database. - Fleet Cloud: If you'd rather not self-host, Fleet offers a managed, free-to-start cloud tier that handles the infrastructure for you.
Head over to the Fleet GitHub repository for detailed installation guides, comprehensive documentation, and to star the project if it catches your eye.
Final Thoughts
Fleet feels like a natural evolution for teams that already embrace DevOps and Infrastructure as Code. Managing iOS devices through pull requests instead of a web portal isn't just a novelty—it's a more robust, auditable, and collaborative way to work. It significantly lowers the barrier for developers to safely participate in and understand device management.
If you're tired of context-switching into a legacy MDM console, or if the idea of git log showing who changed your device firewall rules sounds appealing, Fleet is absolutely worth a weekend experiment. It bridges the gap between modern development practices and the often-overlooked world of endpoint management.
@githubprojects
Repository: https://github.com/fleetdm/fleet