I found a way of getting an almost working setup for this:
cabal haddock --haddock-internal --haddock-quickjump --haddock-hoogle --haddock-html
hoogle_dir=$(dirname $(dirname $(readlink -f $(which hoogle))))
hoogle generate --database=local.hoo \
$(for d in $(fd -L .txt ${hoogle_dir}); do printf "--local=%s " $(dirname $d); done) \
--local=./dist-newstyle/build/x86_64-linux/ghc-9.8.2/pkg-0.0.1/doc/html/pkg
hoogle server --local --database=local.foo
The “almost working” part is that links in documentation are working.