apt repositories are just http severs with some metadata generated.
There are some services, like metioned jfrog and maybe nexus that will set it up for you with some additional tooling to aid in package releases.
For a private use, a static file hosting + metadata is all you need.
Here's instructions from Debian docs. It seems fairly straightforward on a cursory look through.
https://wiki.debian.org/DebianRepository/Setup#Debian_Repository_Types