This project needs donations to support the 40TB/month bandwidth
Over the years I've asked your help again and again.
The bottom line is: Donations are needed to keep this project publicly available.
Over a million people have downloaded croc making it a ubiquitous resource for many folks. Thanks to your help, a grant from DigitalOcean, and a small grant from GitHub, I've been able to fully fund the croc server for several years.
But I need your help again. The cost of croc is mostly bandwidth - over 40 terabytes of data is sent every month through croc! That's amazing to me since I started this project just as a way for me to share files with friends. Six years ago, the public relay server only costed $5/month, but now it is costing me $80-100/month. The higher cost is enabling file transfers for thousands of people all around the world.
But I can't maintain paying that much personally, so I would appreciate if you could do one of the following:
- Sponsor me at any level: https://github.com/sponsors/schollz
- Donation via PayPal https://www.paypal.com/paypalme/ZackScholl
- Donation via Bitcoin: 3DkN7b4X2qBHA6je6UsnmkcLPJNsrKYN2Y
Anything goes a long way. Many small donations is what is keeping this afloat, no donation is too small to be helpful.
Maybe add a donation/buy-me-a-coffee button on top of your README .. ;-)
[edit] ("This project is supported by GitHub sponsors." does not intentional make upcomming supporters click on it^^)
Thanks, good idea, I will modify that.
@schollz where are you hosting this? We can probably move it to something like an Hetzner ARM virtualized/dedicated server to achive this.
@sansneo It is hosted on Hetzner already. It is getting quite expensive unfortunately.
@schollz at first, thanks for this kind of project, but i have some questions about the setup as a relay service that you provide.
How did you managed to get such costs only for traffic? If it is okay, could you please tell me what the setup is like, because i want to know if i donate where the money goes in. Thanks
Best regards Tablette
@Tablettenschrank The money goes towards the server costs and upkeep. Croc uses over 40TB, which is the traffic included in the Hetzner pod. Each TB over costs another euro and the traffic is only increasing (not quite to the level that it makes sense getting the next level of bandwidth though). The money goes towards those costs and a very small amount goes to me for my time managing the infrastructure.
So far, I've gotten a few sponsors from this campaign, enough to get through 2025 definitely and part of 2026.
First of all, thanks for making this project. I have been using this for a while and I thought that the relay was only like a peer-connection thing, ensuring a safe connection between peers (like BitTorrent trackers). Only now I am learning that the relay is handling the entire file transfer!
Therefore, also thanks a ton for hosting the default relay.
https://github.com/schollz/croc/blob/0d173e93592515632bbccb99f58ff3d600fd379e/src/models/constants.go#L18-L25
Would you be open to this idea: adding community-made relays, instead of a single one from you? Such that, for example, there would be 5 different relays, which croc would randomly select from them. This way, croc can continue working even if the one relay goes down. Also it would decrease your server costs and make this truly a community made project.
And I wonder if it would be safe: e.g, if a bad actor can set up a public relay for everyone's use, and somehow see the file contents that are being transferred through their relay.
First of all, thanks for making this project. I have been using this for a while and I thought that the relay was only like a peer-connection thing, ensuring a safe connection between peers (like BitTorrent trackers). Only now I am learning that the relay is handling the entire file transfer!
Therefore, also thanks a ton for hosting the default relay.
Lines 18 to 25 in 0d173e9
// DEFAULT_RELAY is the default relay used (can be set using --relay) var ( DEFAULT_RELAY = "croc.schollz.com" DEFAULT_RELAY6 = "croc6.schollz.com" DEFAULT_PORT = "9009" DEFAULT_PASSPHRASE = "pass123" INTERNAL_DNS = false ) Would you be open to this idea: adding community-made relays, instead of a single one from you? Such that, for example, there would be 5 different relays, which croc would randomly select from them. This way, croc can continue working even if the one relay goes down. Also it would decrease your server costs and make this truly a community made project.
And I wonder if it would be safe: e.g, if a bad actor can set up a public relay for everyone's use, and somehow see the file contents that are being transferred through their relay.
This is a good idea to have multiple replayers.
Relayer probably won't see the content if the content is already encrypted by the sender, but I think relayer might be able to send something different to the receiver, I'm not sure