تخطَّ إلى المحتوى

Server Provisioning

هذا المحتوى غير متوفر بلغتك بعد.

nself Cloud provisions Hetzner VPS instances on your behalf. This page covers server types, regions, DNS setup, SSH bootstrap, and backup configuration.


TypevCPURAMDiskHetzner Price
cx1122 GB20 GB~€4.51/mo
cx2124 GB40 GB~€8.21/mo
cx3128 GB80 GB~€15.90/mo
cx41416 GB160 GB~€30.99/mo
cx51832 GB240 GB~€59.98/mo

Minimum: cx11 for development or light workloads. Recommended: cx21 for a personal ɳChat or ɳClaw backend. cx31 for teams or ɳTV.


RegionLocationNotes
fsn1Falkenstein, GermanyDefault, best latency for EU
nbg1Nuremberg, GermanyEU alternative
hel1Helsinki, FinlandEU North, lower latency for Nordics
ashAshburn, USAUS East
hilHillsboro, USAUS West

Pick the region closest to your users.


During provisioning, nself Cloud creates a Cloudflare DNS A record pointing your chosen subdomain at the Hetzner server IP.

Your domain must be managed by Cloudflare (or you provide an existing server IP). If you bring your own DNS, set the A record yourself before provisioning completes, the health check waits up to 10 minutes for DNS propagation.


After the VM is up, the provisioner:

  1. Generates an SSH key pair for the server (private key stored encrypted in our database)
  2. SSHes in as root
  3. Runs the standard bootstrap:
    Terminal window
    apt-get update -qq
    apt-get install -y docker.io docker-compose-plugin curl
    curl -sSL https://install.nself.org | bash
  4. Runs nself install with your configured plugins
  5. Sets up a daily backup cron via nself backup enable

The private SSH key is used only by the Cloud control plane for remote CLI commands (nself upgrade, log streaming, metrics). It is never exposed to users.


Every provisioned server gets daily Hetzner Snapshots. Backups are retained for 30 days.

To restore from a backup:

  1. Dashboard → Servers → select server → Backups
  2. Choose a snapshot date
  3. Click Restore: the server is stopped, snapshot applied, then restarted

Restoration takes 5-15 minutes depending on disk size.


The dashboard polls /api/provision/[jobId] every 5 seconds during provisioning. Status values:

StatusMeaning
queuedJob created, waiting for worker
creating_vmHetzner API call in progress
bootstrappingSSH into new VM, installing Docker + CLI
installingnself install running
configuring_dnsCloudflare A record being set
issuing_tlsLet’s Encrypt cert request
health_checkWaiting for stack to report healthy
runningComplete, server is live
failedProvisioning failed, see error message

Dashboard → Servers → select server → Danger ZoneDestroy Server.

Destroying a server:

  1. Cancels the Stripe subscription (prorated credit applied)
  2. Runs nself destroy on the remote, stops all containers, removes volumes
  3. Deletes the Hetzner VM
  4. Removes the DNS A record
  5. Marks the server record as destroyed in the dashboard

Data is permanently deleted. Export your data before destroying.