The design of a system with many locations, each with many items which may fail while in use, is considered. When items fail, they require repair; the particular type of repair being governed by a probability distribution. As repairs may be lengthy, spares are kept on hand to replace failed items. System ineffectiveness is measured by expected weighted shortages over all items and locations, in steady state. This can be reduced by either having more spares or shorter expected repair times. Design consists of a provisioning of the number of spares for each item, by location; and specifying the expected repair times for each type of repair, by item and location. The optimal design minimizes expected shortages within a budget constraint, which covers both (i) procurement of spares and (ii) procurement of equipment and manning levels for the repair facilities. All costs are assumed to be separable so that a Lagrangian approach is fruitful, yielding an implementable algorithm with outputs useful for sensitivity analysis. A numerical example is presented.