Gitlab does have a self hosted option, though it is still a subscription.
Worth noting that you don't have to self-host your GitLab instance to self-host your CI/CD runners. You can configure gitlab.com and use your own tightly controlled infrastructure for running CI/CD.
You can self host Gitlab entirely, no subscription needed.
Agreed, though the paid plan might have more parity with whatever they were doing with Jenkins.