Good god, you’re not a bad mum, you’re just in an impossible situation. Just said this on another thread but it still holds true here: you need to set some clear boundaries. Work out what you expect as a baseline for a happy relationship and family and enforce those boundaries.
Tell him you aren’t comfortable with the lying, the daily drinking, the drug use (that you have proof of) and the fighting. Tell him how those things make you feel (it doesn’t have to be judgemental, just your emotional response to them).
Like, “When I know you’ve taken drugs and been fighting, it makes me feel scared and also a bit angry that you’ve put yourself in a position where something bad could happen. When you lie to me, I feel really hurt and upset.”
Also tell him how amazing you think he is as a dad and husband when he isn’t doing those things. That you really love and value him.
Then try and work out together how you can tackle this situation. Otherwise he’s going to still do those things and you are going to feel helplessly worse and worse about it.
Bear in mind, he may say that he’s not willing to stop doing any of those things - at which point you need to make a decision as to whether you are willing to stay and raise a family with someone whose level of acceptable behaviour is so much different to your own. You can still raise a family together but be separated (horrible as that feels).
All the luck in working this out - it’s a crunch point for your relationship but hopefully you can work through it with him to the right conclusion for both of you.