Skip to content

Your first server

This page assumes someone has already installed zone9 and given you an account. If you are the one doing the installing, start at Self-hosting instead.

Panel labels are quoted in Turkish because that is what the interface shows; the English meaning follows in brackets.

Every server lives in a subnet of a private network. If your organisation has none yet, the panel creates a default one for you the first time you create a server — a network called default with an application subnet called app.

If you want to choose deliberately, go to Ağ → Özel Ağlar (Network → Private networks) and create one. Remember the tier rule:

  • app and mgmt subnets can reach the internet — once a gateway is attached.
  • data subnets never can. That is enforced, not advisory.

A brand new subnet has no internet access at all until you attach a gateway. This surprises people, so it is worth saying plainly: your first server will boot, but it will not be able to install packages until either a gateway is attached to its subnet or the server has a public address of its own.

Sunucular → Sunucu Oluştur (Servers → Create server). The form asks, in order:

FieldWhat to know
İsim (Name)Lower-case letters, digits and hyphens. It becomes the VM name in Proxmox and the hostname inside the guest.
RegionOnly shown when your installation has more than one.
Özel ağ (Private network)Which subnet the server’s first interface lands in.
İşletim sistemi (Operating system)Chosen before the package, because the package list depends on it — a Windows image has a minimum memory requirement that hides the smallest plans.
Paket (Plan)vCPU, memory and disk. See the table below.
SSH anahtarı (SSH key)Linux only. Without a key you get a generated console password instead, shown once.
PlanvCPUMemoryDisk
s12 GB40 GB
m24 GB80 GB
l48 GB160 GB
xl616 GB240 GB
xxl832 GB400 GB
xxxl1264 GB640 GB

Windows images require at least 4 GB of memory, so s and m do not appear when a Windows image is selected.

The API validates the request, allocates a private address, writes your intent and a ServerCreate job, and answers immediately with 202 Accepted. The panel then shows the server as kuruluyor (creating) and follows the job.

Behind that, the job clones the image template, applies CPU/memory/disk, configures cloud-init (or cloudbase-init on Windows) with the network and your SSH key, tags the VM so any Proxmox operator can see who owns it, and starts it. If the job is interrupted, it resumes — it looks at what actually exists rather than replaying steps.

If you asked for a password instead of an SSH key, it is shown once and never again. The panel does not store it. Copy it before you close the dialog; if you lose it, use Şifre sıfırla (Reset password) on the server page.

You have three ways in, and they answer different needs.

Console. Works with no network at all — this is the point of it. Open the server and choose Konsol (Console). Serial console for Linux, VNC for Windows. See Console.

Private address. From another server in the same private network, immediately.

Public address. Go to the server, Public IP → Tak (Attach). If your organisation has no free address, ask your operator to allocate one; addresses come from a pool the operator manages. The address is configured on the VM itself, so ip addr inside the guest shows the real public address — see Public IPs.

Terminal window
# 1. Which images and plans exist
curl -H "Authorization: Bearer $Z9_TOKEN" https://api.example.com/v1/catalog
# 2. Create — returns 202 with a job id
curl -X POST https://api.example.com/v1/servers \
-H "Authorization: Bearer $Z9_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "web-1",
"region": "ist1",
"image": "ubuntu-24.04",
"package": "m",
"ssh_key_ids": ["key_…"]
}'
# 3. Follow the job
curl -H "Authorization: Bearer $Z9_TOKEN" https://api.example.com/v1/jobs/job_…

Every mutating endpoint behaves this way. See Asynchronous operations for the job states and how to wait correctly.

Deletion is two-phase. Pressing delete marks the server for removal and starts a buffer — a grace period during which the VM is stopped but its disks still exist. Within that window you can cancel. After it expires, a job destroys the VM and its disks for real.

The buffer is configured per installation. Ask your operator what yours is; ten minutes is a common value.