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.
1. Pick a private network
Section titled “1. Pick a private network”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:
appandmgmtsubnets can reach the internet — once a gateway is attached.datasubnets 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.
2. Create the server
Section titled “2. Create the server”Sunucular → Sunucu Oluştur (Servers → Create server). The form asks, in order:
| Field | What to know |
|---|---|
| İsim (Name) | Lower-case letters, digits and hyphens. It becomes the VM name in Proxmox and the hostname inside the guest. |
| Region | Only 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. |
| Plan | vCPU | Memory | Disk |
|---|---|---|---|
s | 1 | 2 GB | 40 GB |
m | 2 | 4 GB | 80 GB |
l | 4 | 8 GB | 160 GB |
xl | 6 | 16 GB | 240 GB |
xxl | 8 | 32 GB | 400 GB |
xxxl | 12 | 64 GB | 640 GB |
Windows images require at least 4 GB of memory, so s and m do not appear when a
Windows image is selected.
What happens when you press create
Section titled “What happens when you press create”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.
3. Reach it
Section titled “3. Reach it”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.
4. The same thing over the API
Section titled “4. The same thing over the API”# 1. Which images and plans existcurl -H "Authorization: Bearer $Z9_TOKEN" https://api.example.com/v1/catalog
# 2. Create — returns 202 with a job idcurl -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 jobcurl -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.
5. Delete it
Section titled “5. Delete it”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.