Am I setting myself up for another heartbreak?

I’ll try to make this short. My husband and I have been together 7 years. The past, I’d say, year and a half have been especially difficult. There are a lot of issues in our relationship that led to us being completely miserable and fighting constantly. I kicked him out two months ago when I found out he was cheating on me. I was completely devastated. I have a son from a previous relationship that he has raised from the time he was a baby, being the only father he has ever had in his life… It’s has made this break up even mor difficult. When he moved out, he became even more distant and horrible to me because, as I found out later, he was still seeing this girl. He said nasty things to me to push me away and hurt me and it worked. I was finally at a point where I was ready to move on and stop the pain and he came back into my life crying, apologizing for everything he had done and said he wants to try to make things work between us. He ended things with this other girl and said he misses his family and wants us back. He says he feels ashamed of what he did to me and he’s realized that I’m the only person that has ever loved him and stood by him (he has a lot of issues with depression and has had drug issues in the past). I am torn. I love him and don’t want to throw away the seven years we have together, but I am so scared of being hurt again. We won’t be moving back in together for a long time because I don’t want to confuse my son by him coming home, just for us to end it and hurt my son even more. I guess my question is this: do you believe that “once a cheater, always a cheater”?