<a target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/admin-following-instances?id=automatically-follow-other-instances">Automatically follow</a> instances from a public index
Let PeerTube save and store your original video file so you no longer have to keep it on your hard drive anymore (this option must be enabled by your administrator)
Help (or get help) other instances using <a target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/admin-following-instances?id=instances-redundancy">PeerTube redundancy</a>
Enable <a target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/admin-configuration?id=live-streaming">live streaming</a> for your instance
PeerTube should run happily on a virtual machine with 2 threads/vCPUs, at least 1 Gb of RAM and enough storage for videos. In terms of bandwidth, a lot will depend on which PeerTube instances you federate with and what your relation with them is (more about that below).
You will hugely benefit from at least a second thread though, because of transcoding. Transcoding is very cpu intensive. It serves two purposes on a PeerTube instance: it ensures all videos can be played optimally in the web interface, and it generates different resolutions for the same video. PeerTube support for offloading transcoding to other machines is <a target="_blank" rel="noopener noreferrer" href="https://github.com/Chocobozzz/PeerTube/issues/947">being discussed</a>, but not yet implemented.
1/2 GB of RAM should be plenty for a basic PeerTube instance, which usually takes at most 150 MB in RAM. The only reason you might want more would be if you colocate your Redis or PostgreSQL services on a non-SSD system.