Dans une grande casserole, faites fondre le beurre et l'huile d'olive à feu moyen. Ajoutez les oignons tranchés et faites-les cuire lentement jusqu'à ce qu'ils deviennent dorés et caramélisés, cela peut prendre environ 30 à 40 minutes.
Ajoutez l'ail haché et faites cuire pendant 1 à 2 minutes jusqu'à ce qu'il devienne parfumé.
Saupoudrez la farine sur les oignons et mélangez bien pour qu'elle soit bien incorporée et cuite, cela permettra d'épaissir la soupe.
Versez le vin blanc sec dans la casserole et remuez, en grattant le fond pour décoller les morceaux dorés. Laissez mijoter pendant quelques minutes pour réduire légèrement le vin.
Ajoutez le bouillon de bœuf ou de légumes et le bouquet garni. Assaisonnez avec du sel et du poivre noir selon vos envies.
Laissez mijoter la soupe pendant environ 20 à 30 minutes pour que les saveurs se mélangent.
Préchauffez le grill du four à 180°C. Pendant ce temps, faites griller les tranches de baguette jusqu'à ce qu'elles soient légèrement dorées.
Retirez le bouquet garni de la soupe et répartissez la soupe à l'oignon dans des bols allant au four.
Placez les tranches de baguette grillées sur le dessus de chaque bol de soupe, en les enfonçant légèrement pour qu'elles absorbent un peu de liquide.
Saupoudrez généreusement chaque bol avec du fromage gruyère râpé.