Should I stay or should I let go ?

I’m sorry for the lengthy post… please help. I need advice and my friends and family are so biased.

My boyfriend and I have been together for 3 years now.. we have had a lot of ups and downs but ultimately have been very happy. He has been battling a skin issue called TSW for the past couple years as well that affects him greatly. Basically his skin is going through withdrawals from a steroid he had to discontinue using and his skin goes through horrible flares and oozes and bleeds and peels and gives him bad mood swings. He has been going through a lot and has lashed out on me on several occasions. He’s also got some serious trust issues, me being the first gf he’s ever had that hasn’t cheated. In top of all that, he recently started battling a quarter life crisis and doesn’t know what he wants out of life. He owns his own tree business and is debating whether he wants to grow or back out. With all of his internal battles going on he has broken up with me like 3 times in the last month but always ends up apologizing and coming back. I love him more than I could ever explain and want so badly to be here for him and help him through all the stuff he’s going through. This time we got back together and he said he knows he should trust me by now but there needs to be honesty on both sides. So he admitted that he had a spank bank on his phone and in it had some boudoir photos of my sister and one of my friends (I’m a photographer and he took them off my iPad) this hurt me but he deleted it all right in front of me and has heavily apologized. But now I’m just battling whether I accept that or not.. what do I do? Stick by him while he battles his demons, even though he seems to continuously hurt me or give up and let him go and deal with his issues on his own?