I haven’t used it myself, but, this might be the type of thing you’re looking for? It’s completely open source, too.