How to create a Hidden Directory on a vm

You don’t need to set that up. That is handled by relays that earn the HSDir flag.

More info here [tor-relays] Setting a relay as an HSDirectory?