NAME
hcloud.pl - Hetzner Cloud CLI (Perl implementation)
VERSION
version 0.002
SYNOPSIS
# List servers
hcloud.pl server
# Create a server (minimal)
hcloud.pl server create --name my-server --type cx22 --image debian-12
# Create a server (full options)
hcloud.pl server create \
--name my-server \
--type cx22 \
--image debian-12 \
--location fsn1 \
--ssh-key my-key \
--label env=prod \
--label team=ops \
--user-data-from-file cloud-init.yaml
# Create without public IPv4
hcloud.pl server create --name private-server --type cx22 --image debian-12 \
--without-ipv4 --network 12345
# Delete a server
hcloud.pl server delete 12345
# Describe a server
hcloud.pl server describe 12345
# List server types
hcloud.pl servertype
# JSON output
hcloud.pl -o json server
DESCRIPTION
Perl implementation of the Hetzner Cloud CLI tool (hcloud). This script provides a command-line interface to the Hetzner Cloud API.
To avoid conflicts with the official hcloud binary, this script is named hcloud.pl. You can create an alias if desired:
alias hcloud='perl /path/to/hcloud.pl'
NAME
hcloud.pl - Hetzner Cloud CLI (Perl implementation)
OPTIONS
- -t, --token=TOKEN
-
Hetzner Cloud API token. Defaults to
HETZNER_API_TOKENenvironment variable. - -o, --output=FORMAT
-
Output format:
table(default) orjson.
COMMANDS
server
Manage servers.
server create
Create a new server. Required options: --name, --type, --image.
hcloud.pl server create --name web1 --type cx22 --image debian-12
Options:
--name Server name (required)
--type Server type, e.g., cx22, cpx11 (required)
--image Image name, e.g., debian-12 (required)
--location Location: fsn1, nbg1, hel1, ash, hil
--datacenter Datacenter, e.g., fsn1-dc14
--ssh-key SSH key name or ID (repeatable)
--label Label as key=value (repeatable)
--network Network ID to attach (repeatable)
--volume Volume ID to attach (repeatable)
--firewall Firewall ID (repeatable)
--placement-group Placement group ID or name
--user-data-from-file Path to cloud-init file
--without-ipv4 Create without public IPv4
--without-ipv6 Create without public IPv6
--primary-ipv4 Assign existing Primary IPv4
--primary-ipv6 Assign existing Primary IPv6
--automount Automount attached volumes
--no-start-after-create Don't start server after creation
server list
List all servers.
server describe <ID>
Show details for a server.
server delete <ID>
Delete a server.
sshkey
Manage SSH keys.
image
List images. Use --type to filter by type (system, snapshot, backup).
servertype
List available server types.
location
List available locations.
datacenter
List available datacenters.
ENVIRONMENT
HETZNER_API_TOKEN-
Default API token if not specified via
--token.
SEE ALSO
WWW::Hetzner::CLI, WWW::Hetzner::Cloud, https://docs.hetzner.cloud/
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-www-hetzner/issues.
IRC
Join #kubernetes on irc.perl.org or message Getty directly.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <torsten@raudssus.de>
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.