linux vps

A Linux box you'd
rent to yourself.

Modern kernels, gen5 NVMe, the option to bring your own image. Root from second zero, cloud-init out of the box, and no disabled sysctls we won't tell you about.

deploy.sh — first boot
 ~ curl -fsSL nodara.host/install | sh
▸ resolved: nv-4x @ fra1 · 4c · 16GB · 300GB nvme
▸ cloud-init: user-data verified (3.2 KB)
▸ image: ubuntu-24.04 · signed by nodara-releng
✓ ssh root@nv-8f2a10c3.fra1.nod.rocks
ubuntu@nv-8f2a10c3:~$  
supported images

Ten distros, one control plane.

Every image is cloud-init ready. Custom ISO upload is available on Scale tier and above.

Ubuntu 24.04 LTS
default
noble numbat
cloud-init, systemd 255
Ubuntu 22.04 LTS
jammy jellyfish
cloud-init, systemd 249
Debian 12
bookworm
minimal, cloud-init
Debian 11
bullseye
for legacy compat
Rocky Linux 9
blue onyx
RHEL-compatible
AlmaLinux 9
shamrock
RHEL-compatible
Fedora 41
workstation
podman preinstalled
Alpine 3.20
minimalist
apk, openrc, 42 MB base
NixOS 24.05
uakari
flake-ready, home-manager
Arch (rolling)
current
pacman, latest kernels
cloud-init

Ship user-data on day one.

Paste any cloud-init YAML in the deploy step or pipe it via our CLI. We validate before we boot, so bad YAML fails fast — no silently un-provisioned nodes.

  • User-data up to 32 KB, base64-encoded
  • Vendor-data injects sane sysctls & journald limits
  • Meta-data via IMDSv2 · same shape as AWS
cloud-config.yaml
#cloud-config
packages:
  - caddy
  - tailscale

write_files:
  - path: /etc/caddy/Caddyfile
    content: |
      api.example.com {
        reverse_proxy localhost:8080
      }

runcmd:
  - systemctl enable --now caddy
  - tailscale up --authkey=${TS_KEY}