Crates.io | fuoco |
lib.rs | fuoco |
version | 0.0.5 |
created_at | 2025-06-16 16:06:20.424068+00 |
updated_at | 2025-07-03 13:08:17.717304+00 |
description | A CLI tool for provisioning ephemeral VMs on AWS, GCP, and Hetzner through a unified interface. |
homepage | |
repository | https://github.com/x71c9/fuoco |
max_upload_size | |
id | 1714456 |
size | 37,274 |
Ephemeral VM provisioner for AWS, GCP, and Hetzner.
fuoco
automates a built-in Terraform template to provision a single VM in AWS, GCP, or Hetzner,
executes a startup script via cloud-init/user-data, and destroys all resources on termination.
--debug
streams Terraform logs for troubleshooting.fuoco
.PATH
.AWS: via ~/.aws/credentials
or environment variables.
GCP: via gcloud auth application-default login
or GOOGLE_CLOUD_PROJECT
env var.
Hetzner: via HCLOUD_TOKEN
env var.
fuoco deploy --provider <aws|gcp|hetzner> [OPTIONS]
If somethig goes wrong it is possible to undeploy with:
fuoco undeploy --provider <aws|gcp|hetzner> [OPTIONS]
Option | Description |
---|---|
--provider <aws|gcp|hetzner> |
Cloud to deploy (aws, gcp, or hetzner). |
--region <REGION> |
AWS region, GCP zone, or Hetzner location (e.g. us-east-1 , us-central1-a , nbg1 ). |
--instance-type <TYPE> |
VM size (defaults: t4g.nano AWS, e2-micro GCP, cx11 Hetzner). |
--script-path <FILE> |
Path to a Bash script to execute on VM startup. |
--debug |
Print Terraform init/apply/destroy logs (for debugging). |
-h, --help |
Show this help message. |
Press Ctrl+C or send SIGTERM
to destroy the VM and exit.
fuoco deploy --provider aws --script ./startup.sh
Templates embedded under templates/<provider>/main.tf
:
terraform init
the provider.terraform apply
with auto-approve and injected vars (region, instance-type, script, etc.).Ctrl+C
/SIGTERM
(or panic) to trigger terraform destroy
.--debug
to view full Terraform logs.tee /dev/console
to the cloud‑init user‑data sequence.Contributions are welcome. Open issues or PRs for bugs, features, or improvements.