1. A method comprising: receiving from a user a request for a custom software appliance to be executed by a computing device, 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, an application, and a reduced version of an operating system, the reduced version of the operating system having enough resources to provide an execution platform for the application; building, by the processor, the custom software appliance in view of the pre-built software appliance, the recipe, the application, and the reduced version of the operating system, wherein the custom software appliance comprises identifying information of the user; generating, by the processor, a management tool of the custom software appliance, wherein the management tool is to provide an interface for the custom software appliance when executed by the computing device, and wherein the management tool comprises: a hardware interface to retrieve at least one of information, settings or parameters from hardware of the computing device; and a component interface to connect to the application and a portion of the reduced version of the operating system; embedding, by the processor, the management tool within the custom software appliance, wherein the custom software appliance comprises the management tool, the application, and the reduced version of the operating system; storing the custom software appliance, with the management tool embedded, in the repository; and providing, by the processor, a copy of the custom software appliance to the computing device, wherein the management tool is to receive a management request from the user via the interface.