Do you want to enable transcoding? If so, do you want to provide multiple resolutions per video? Try this out with a few videos and you will get an idea of how much extra space is required per video and estimate a multiplication factor for future space allocation.
Except for video transcoding, a PeerTube instance is not CPU bound. Neither Nginx, PeerTube itself, PostgreSQL nor Redis require a lot of computing power. If it were only for those, one could easily get by with just one thread/vCPU.
For example, in France, discriminatory content <a target="_blank" rel="noopener noreferrer" href="https://fr.wikipedia.org/wiki/Lois_contre_le_racisme_et_les_discours_de_haine">is prohibited</a> and may be reported to authorities. PeerTube allows users to report problematic videos, and administrator must then apply its moderation in accordance with its terms and conditions and the law.
For example, in September 2021, the 900 platforms listed on our <a target="_blank" rel="noopener noreferrer" href="https://instances.joinpeertube.org/instances">public index</a> host only ~1% videos tagged as containing sensitive content.