TINY-CLOUD.CONF(5)

πŸ“¦ version 3.4.1, in alpine 3.24

πŸ¦‹ tiny-cloud.conf(5) β€” the config file, bestie edition πŸ¦‹

okay so this is the tiny-cloud.conf manual page, section 5 of the File Formats Manual, and honestly? it's giving "tiny file, huge main character energy." let's get into it πŸ’…


✨ NAME ✨

tiny-cloud.conf β€” the configuration file for tiny-cloud πŸŽ€

πŸ’– DESCRIPTION πŸ’–

tiny-cloud.conf is literally the config file for tiny-cloud(8). here's the tea: the file gets sourced by the tiny-cloud shell code during startup, so it's not some fancy custom format β€” it's just shell-style variable assignments. periodt. 🐚

the default system configuration file is /etc/tiny-cloud.conf. remember that path, bestie, you'll need it 🌸

πŸ“ FORMAT πŸ“

the file is made of shell variable assignments that look like this:

NAME=value

blank lines and shell comments? ignored. not invited to the party. bye πŸ™ˆ

πŸ‘‘ VARIABLES πŸ‘‘

this is the part you actually came for, so buckle up 🫢

  • CLOUD=<provider> β€” picks your cloud provider. default is auto, which turns on provider autodetection (she'll figure it out herself, she's smart like that ✨). supported values rn include aws, azure, digitalocean, gcp, hetzner, incus, nocloud, oci, openstack, and scaleway 🌈
  • CLOUD_USER=<user> β€” the default user account for instance SSH keys and default-user setup. default is alpine. iconic name choice ngl πŸ”οΈ
  • TINY_CLOUD_INIT_SYSTEM=<init_system> β€” which init system gets used for service management. supported values are auto, openrc, and systemd. default is auto, which sniffs out the running init system for you πŸ‘ƒβœ¨
  • IMDS_API_VERSION=<version> β€” the provider's API version to use. providers that have versioned APIs come with built-in default values already, so you don't gotta worry πŸ’…
  • IMDS_ENDPOINT=<address[:port]> β€” the provider endpoint IP address or hostname to use. defaults to 169.254.169.254 for many providers 🫑
  • IMDS_ENDPOINTS=<endpoint> ... β€” a whitespace-separated list of provider endpoints. defaults to IMDS_ENDPOINT. endpoints are tried in order, and the most recently working endpoint gets tried first on later queries (she remembers what worked, queen behavior πŸ‘‘). IPv6 endpoints must use brackets, for example [fd00:ec2::254] or [fd00:ec2::254]:80 ⚠️
  • IMDS_ENDPOINT_WAIT_ATTEMPTS=<number> β€” how many times to check for routes to any IMDS endpoint before just trying metadata requests anyway. default is 10 πŸ”
  • IMDS_TOKEN_TTL=<seconds> β€” metadata token lifetime in seconds for AWS metadata access. only the AWS provider uses this one. default is 5 ⏳
  • AZURE_WIRESERVER=<address> β€” the Azure WireServer address used to report provisioning readiness. only the Azure provider uses this. default is 168.63.129.16 ☁️
  • AZURE_READY_ATTEMPTS=<number> β€” how many attempts to make when reporting provisioning readiness to Azure. default is 5 🎯
  • AZURE_READY_RETRY_DELAY=<seconds> β€” the delay between Azure provisioning-readiness attempts. default is 5 ⏱️
  • TINY_CLOUD_DHCP_TIMEOUT=<seconds> β€” max number of seconds to wait for temporary bootstrap DHCP. default is 10 πŸ“‘
  • TINY_CLOUD_DHCP_CLIENT=<auto|dhcpcd|udhcpc> β€” which DHCP client to use for temporary bootstrap networking and generated network configuration. default auto uses dhcpcd when it's available and otherwise falls back to udhcpc. heads up: selecting dhcpcd requires it to be installed, and selecting udhcpc disables use of dhcpcd entirely 🫢
  • PRESERVE_NETWORK_INTERFACES=<0|1> β€” when set to 1 and /etc/network/interfaces already exists, keep that file instead of replacing it with datasource-provided network configuration. if the file doesn't exist, normal datasource and fallback processing carries on like nothing happened πŸ’« default is 0. this currently affects NoCloud, aka the provider that supports datasource-provided network configuration πŸ‘€
  • TINY_CLOUD_VAR=<path> β€” the state directory tiny-cloud uses. default is /var/lib/cloud πŸ“
  • TINY_CLOUD_LOGS=<path> β€” the log directory tiny-cloud uses. default is /var/log πŸͺ΅
  • TINY_CLOUD_LV_ALLOCATE=<percentage> β€” how much space to allocate when expanding the "/" LVM logical volume, as a percentage. default is 85 percent of the volume group's space πŸ’Ύ
  • SKIP_INIT_ACTIONS=<action> ... β€” whitespace-separated list of init actions to skip during phase execution. common action names include expand_root, set_hostname, set_ssh_keys, save_userdata, and run_userdata πŸ™…β€β™€οΈ
  • NONFATAL_INIT_ACTIONS=<action> ... β€” whitespace-separated list of init actions whose failure gets logged without stopping the phase. default is set_ephemeral_network save_userdata 🩹

🌟 EXAMPLES 🌟

force the AWS provider:

CLOUD=aws

use a different default login account:

CLOUD_USER=ec2-user

force systemd service management:

TINY_CLOUD_INIT_SYSTEM=systemd

preserve image-provided network interfaces:

PRESERVE_NETWORK_INTERFACES=1

skip hostname and SSH key setup:

SKIP_INIT_ACTIONS="set_hostname set_ssh_keys"

πŸ”— SEE ALSO πŸ”—

tiny-cloud(8), imds(1) β€” go read those too, they're literally so good 🧚


and that's the whole page, bestie!! this one's from the File Formats Manual, dated 2026-08-24 β€” tape it to your mirror and go configure something iconic πŸ’œβœ¨

πŸ“¦ where this page comes from