Setting up an effective knowledge base?

Hi,
Has anyone recently set up a knowledge base for their customer support team? I’m interested in best practices and any software recommendations that make it easier.