← Blog

Cloud-Init: Automate Your VPS Setup on First Boot

September 18, 2026 · 4 min read

Instead of SSHing into every new server and running the same commands, cloud-init does it for you automatically on first boot. It's the standard way to make servers reproducible. Here's a quick primer.

What cloud-init does

At deploy time you supply a small user-data script. On first boot the server reads it and can:

  • Install packages
  • Create users and add SSH keys
  • Write config files
  • Run any commands you specify

No manual setup, and every server comes up identically.

A simple example

This installs nginx and writes a page:

#cloud-config
package_update: true
packages:
  - nginx
runcmd:
  - echo "Hello from cloud-init" > /var/www/html/index.html
  - systemctl enable --now nginx

Paste that into the Cloud-Init User Data field when you deploy, and the server is a working web host the moment it boots.

Why it's worth it

  • Reproducible — the same script builds the same server every time.
  • Fast — no manual steps after deploy.
  • Scriptable — combine it with the API to spin up preconfigured servers programmatically.

Pairs perfectly with an API

If you deploy via the REST API, pass your cloud-init as user-data and you get a fully configured server from a single call — ideal for CI, autoscaling or disposable environments.

Get started

Deploy with cloud-init — crypto only, configured on first boot, live in ~60 seconds.

Ready to deploy?

Fund a balance in crypto and get a server in ~60 seconds.

Get started →