if you need the full cargo registry features (edit: by "full features", I mean the cargo web API as documented here: Registry Web API - The Cargo Book), you definitely need a server to run your own private registry. if you just need to host a mirror of sources for the default crates-io registry, you can just use a filesystem like a local disk or network share.
see e.g. the source."<registry name>".replace-with configuration: