Projects are more than code. This doesn't solve the problem of issue trackers, pull requests, CI, etc.

Pull requests are a core feature of git, the protocol, so I think you probably mean certain PR features more than just PRs.

Issue trackers can be self-hosted from fully mature applications via docker images. You might find something here: https://selfh.st/apps/

CI is typically actioned from a configuration file in your repository to a CI SAAS solution, which could be anything. Travis CI was popular for a long time. When I was big into CI SAAS my favorite was Semaphore CI.