1. A method comprising: receiving from a user a request for a custom software appliance, the request specifying functionality of the custom software appliance; searching in a repository, by a processor, in view of the functionality for a pre-built software appliance, a recipe among the plurality of recipes and one or more software components; building, by the processor, the custom software appliance in view of the pre-built software appliance, the recipe, and the one or more software components, wherein the custom software appliance comprises identifying information of the user; storing the custom software appliance in the repository; and providing, by the processor, an interface for the custom software appliance, the custom software appliance comprising a management tool, an application to perform a function and a portion of an operating system to provide an execution platform for the application, and wherein the management tool provides the interface to receive a management request to cause the management tool to manage the application and the portion of the operating system, wherein the management tool is embedded within the custom software appliance, the management tool comprising a hardware interface to retrieve at least one of information, settings or parameters from hardware of a computing device running the custom software appliance and a component interface to connect to the application and the portion of the operating system.