Redmine is free, very powerful, and does everything you want. It doesn't have a fancy UX.
You do need a Linux server and a small bit of System Administrator skills to get it up and running. We can help with that if you'd like.
Using Excel & Power Query we built a financial project management dashboard on top of Redmine that my managers use to get a near real time picture of all ongoing projects from a gross sale/cgs/margin perspective.