There are two ways you can earn your PhD in Germany: the 'individual doctorate' or the 'structured doctorate' →
If you wish to do an individual PhD then you need to apply directly to the university or research institution you are interested in. The PhDGermany database will help you with your search. There you can find current openings for PhD students in Germany.
If you are looking for a structured PhD programme, then a good place to start is the International Programmes database: This database offers over 300 PhD programmes - it is the International Programme Database from the German Academic Exchange Service (DAAD). Most programmes are held in English and have no tuition fees.