Clarify recommended deployment method and runtime requirements in documentation
Hello,
The documentation doesn't really go into detail as to where the program itself should be ran. I am aware there's an option to deploy it to cloud server on Hetzner or turn it into a service on a server. I am guessing it is supposed to run somewhere 24/7 in order to be able to monitor the workflows? As I understand it, the guide assumes it is running somewhere locally, which is why I am a bit confused. Or am I completely misunderstanding it?
Hi @EdyTheCow, yes, for production use, the program needs to run 24/7, so the recommended approach is to run it as a cloud service: Running as a Cloud Service.
I'll update the documentation to clarify this. Let me know if you have any other questions!
It is also recommented to add --debug to the cloud deploy command.
export GITHUB_TOKEN=ghp_...
export GITHUB_REPOSITORY=...
export HETZNER_TOKEN=GJzdc...
github-hetzner-runners --debug cloud deploy
Thank you for a quick response @vzakaznikov ! Are there any minimum resource requirements to run the program? Can I run the program on something like Vultr cheapest server ($2.50) or AWS EC2 "free tier"?
You could technically run the service program on a server from a different cloud provider, but it wouldn't be practical since this project is designed specifically to create runners using Hetzner Cloud servers (Hetzner Cloud). Other cloud providers are not supported.
It looks like Vultr is only cheaper for very resource-constrained servers. Overall, I think Hetzner still offers great value for the price.
But again, this project supports Hetzner Cloud only.
I understand that the runners will be created on Hetzner, however where the program itself is running shouldn't matter since it's using Hetzner and GitHub API anyway? If I understand correctly the program shouldn't be resource intensive either since it's only doing API calls. Because the program has to run 24/7 wouldn't Vultr be slightly more cost effective to run the program itself and let it create runners on Hetzner?
Have you ever tried running the software? Something that confused me when I started using this: The software actually gets a server from Hetzner and configures it for you; Not just the runners, but the software interacting with the APIs. Personally, I put the software on my Proxmox server, thinking it was going to be the server software, but it actually just gets a Hetzner server and installs the server software on there automatically.
I understand that the runners will be created on Hetzner, however where the program itself is running shouldn't matter since it's using Hetzner and GitHub API anyway? If I understand correctly the program shouldn't be resource intensive either since it's only doing API calls. Because the program has to run 24/7 wouldn't Vultr be slightly more cost effective to run the program itself and let it create runners on Hetzner?
Your understanding is correct. You can provision a server from any provider and manually install the service by following the steps in Running as a Service. The github-hetzner-runners service does not have to run on Hetzner specifically.
On the other hand, the github-hetzner-runner cloud deploy command automates provisioning a Hetzner server and installing the service, which is the most common deployment method. However, you are free to run the service on any server of your choice.
Thank you for the clarification and quick reply!
This is a bit off topic, I am a bit unsure of how Hetzner cloud server billing works exactly. In a scenario if I create server 1, destroy it after 5 min. Then create server 2 and destroy it after 5 min. Am I paying for one hour or two hours of usage? Couldn't find any clarification on this on Hetzner docs. I am aware there's a function in the program to take advantage of purposely keeping the server alive for 50 min, but let's ignore that in this case. I am looking at another alternative and just trying to figure out the most cost effective method.
In a scenario if I create server 1, destroy it after 5 min. Then create server 2 and destroy it after 5 min. Am I paying for one hour or two hours of usage? Couldn't find any clarification on this on Hetzner docs.
Yes, you will be paying for 2 hours.
From Hetzner,
Your server's bill will never exceed its monthly price cap. If you delete your cloud server before the end of the billing month, we will only bill you for the hourly rate. We will bill you for each cloud server until you choose to delete them.