# Munki (software)

Munki is a collection of open-source tools which manage software installation and configuration when used together with a web server-based repository of packages and package metadata. It is typically used by system administrators who need to manage software installations on large numbers of macOS computers, typically in enterprise and education environments.

## Overview

On the server side, Munki can use any web server. You can use any available modern web server on any platform. Modern because some software packages can be over 2GB in size and older web servers have problems serving files of that size. Munki does not require the installation of specific software on the web server, but write permissions for directories and files on the web server are required.
Munki can install software delivered as standard Apple packages - the same kind of packages, that when double-clicked, open in Apple's Installer.app. Munki can also install software from disk images. In many cases, Munki can also remove the software it has installed. Munki can update software it did not install itself. Munki can be configured to install Apple Software Updates. This allows users without admin rights to be able to install available Apple updates. See here for more information.
Munki Version Compatibility :
| Munki Release | macOS Support |
| Munki 3 | macOS version 10.7 "Mountain Lion" and above |
| Munki 2 | macOS version 10.6 "Snow Leopard" through macOS version 10.13 "High Sierra" |
| Munki 1 | macOS version 10.5 "Leopard" through macOS version 10.9 "Mavericks" |

## Components

Most of the data munki needs to function is stored on a web server. Munki uses three types of data:
* Installer items: these are packages or disk images containing the software to be installed. In many cases, you can use a package or disk image provided by the software vendor without having to repackage or convert the installer package in any way. Sometimes these are just referred to as "packages", but in actuality Munki can install from things that aren't strictly Apple Installer packages.
* Catalogs: these are lists of available software, containing metadata about the installer items. You, as the Munki administrator, build these catalogs using tools provided with Munki. Catalogs are usually built from individual files, called "pkginfo" files, that describe the metadata for a single installer item. Learn more about pkginfo files here. The makecatalogs tool is used to build catalogs from pkginfo files.
* Manifests: A manifest is essentially a list of what software should be installed on or removed from a given machine. You could have a different manifest for every machine, or one manifest for all of your machines. Manifests can include the contents of other manifests, allowing you to group software for easy addition to client manifests. For example, you could create a manifest listing all of the software every machine in your organization must have. The manifest for a client could then include the common-software manifest, and additionally have software unique to that client.
Manifests and catalogs are stored on the web server as standard Apple plist files in text format. pkginfo files are also plist-formatted files.

## Related software

Simian is a Google built, open source Mac OS X software deployment utility with App Engine-based hosting and a client based on Munki. Simian was released as open-source on January 29, 2011 at the Macworld conference in San Francisco, CA.