# Virtual server

> Create your own Linux server, connect over SSH or from the console in your browser, and change its size. The disk of a server you delete is kept for a while.

A virtual server is a Linux machine that only you manage. You install whatever software you want and connect over SSH or from the console in your browser. Servers are on the **Sunucular** (Servers) page.

To create and manage servers, you need the «Kiracı yöneticisi» (Tenant admin) or «Geliştirici» (Developer) role in the tenant. Someone with the «İzleyici» (Viewer) role sees servers but cannot change them.

## Creating a server

**Open the dialog**

On the Servers page, press «+ Sunucu oluştur» (+ Create server).
**Set the name and how you sign in**

Enter a name in the «Sunucu adı» (Server name) field. The operating system is Ubuntu 24.04 LTS.

To sign in over SSH, paste your public key into the «SSH açık anahtarı (isteğe bağlı)» (SSH public key, optional) field. To see your key:

```bash
cat ~/.ssh/id_ed25519.pub
```

If you want SSH with a password, fill in the «SSH parolası (isteğe bağlı)» (SSH password, optional) field. The keys you added to the panel are written to the server on their own (see [SSH](#ssh)); if you have no key and enter no password, you can get into the server only from the console.

If the «Otomatik güvenlik güncellemeleri» (Automatic security updates) box is ticked, the operating system's security updates are installed on their own every day (see [Security updates](#guvenlik-guncellemeleri)).
**Choose the size**

In the «Kaynak» (Resources) section, choose the amount of CPU, memory and disk. The smallest size is 1 vCPU, 1 GB memory and 10 GB disk. The disk size cannot be changed later; choose as much disk as you need.

If your quota is not enough, the server is not created and a quota request for the missing amount is opened in your name. Try again once the request is approved.
**Create it**

Press «Oluştur» (Create). Setup goes through the steps «Sıraya alındı» (Queued), «Diski hazırlanıyor» (Preparing the disk), «Yapılandırılıyor» (Configuring) and «Ağa bağlanıyor» (Connecting to the network), in that order. You can close the dialog; setup continues.

When the server is ready, a username and a password are shown. The password is stored encrypted in the server's details, in the **Erişim** (Access) section, and only the person who created the server can see it.

## Connecting

### SSH

If your installation has it turned on, you connect to a server with your computer's own SSH client, without downloading any program. The command is ready in the server's details, on the **SSH ile bağlan** (Connect with SSH) row of the **Erişim** (Access) section; the copy icon in the **Erişim** (Access) column of the server list copies the same command. The command looks like this:

```bash
ssh -J ssh.<your-domain> <user>@<server-name>
```

`-J` takes the connection to your server through the platform's jump address. The jump address only carries the connection: your session stays encrypted end to end, and it does not see what you type. The user name does not matter at the jump address; `-J` sends your computer's user name, and that is fine. The panel shows the server's user name.

**Add your key first.** The jump address recognises you by the public key you added to the panel. The easiest way: on the Settings page, in the **SSH anahtarlarım** (My SSH keys) section, copy the command in the «Bu bilgisayarı tek komutla ekleyin» (Add this computer with one command) box and paste it into your computer's terminal. If your computer has no key, the command creates one (if it asks for a passphrase you can leave it empty and press Enter), then a link and a code appear on the screen. Open the link in a browser **on the same computer** and approve; your key is added to your account. Your private key never leaves your computer. If you did not run the command yourself, do not approve; choose «Tanımıyorum, reddet» (I don't recognise it, reject).

To do it yourself, press «Anahtar ekle» (Add key) and paste your public key. If you do not have a key, create one with:

```bash
ssh-keygen -t ed25519
```

You get a notification whenever a key is added to your account.

The server itself also recognises you by key. The server receives the key you pasted when creating it and the keys that people who can connect to it added to the panel. A key you add to or delete from the panel reaches the server's panel list shortly. If your key does not reach a server on its own, the **SSH anahtarlarım** (My SSH keys) section lists that server and tells you what to do. If you gave the server a password, you can also sign in with it; if no route works, use the console.

**Deleting a key.** A key you delete in the **SSH anahtarlarım** (My SSH keys) section leaves your account and the jump address rejects it. The panel only manages the list it wrote itself; it does not touch the line in the server's own `~/.ssh/authorized_keys` file. The delete window names the servers where the key will stay or may have stayed and tells you what to do. On a server that does not receive the panel's list, for example one restored from an image, the key may still be on the disk; the window lists that server too. If the server's page shows an **Açılış anahtarı** (Opening key) row under **Erişim** (Access), remove the key you gave when creating the server from there. If there is no such row, the key is in the server's own file: sign in to the server and delete the line. If your installation connects directly through a port reserved for the server, the jump address is not involved; a key whose line is still on the server can sign in until the line is deleted.

On the first connection SSH asks twice whether it should trust an unknown address: first the jump address, then your server. Type `yes` both times.

**Shortcut (optional).** To avoid typing the long command every time, add these lines to your SSH settings file once. The panel gives the same lines ready on the **Kısa yol** (Shortcut) row:

```text
Host <server-name>
    ProxyJump ssh.<your-domain>
    User <user>
```

After that, typing `ssh <server-name>` is enough. The settings file is `~/.ssh/config` on macOS and Linux, and `%USERPROFILE%\.ssh\config` on Windows.

Your computer remembers the server's key under the short name. If you connect to two different servers with the same short name (for example, a machine with the same name on your own network), SSH may warn you that the key has changed. In that case use the full name: `<server-name>.ssh.<your-domain>` works too.

**Programs.**

| Program | How to connect |
|---|---|
| Windows 10 and 11 | The built-in Windows SSH client supports `-J`; paste the command into PowerShell. If it is not installed, add it from "Optional features" in the Windows settings. |
| macOS and Linux | The command works as is in a terminal. To copy files you can also use `scp -J` and `sftp -J`. |
| VS Code Remote-SSH | Add the shortcut lines to your SSH settings file, then choose the server's name with "Connect to Host". |
| PuTTY (0.77 and later) | Type the server's name as the host name. In "Connection › Proxy", choose the SSH type and enter `ssh.<your-domain>` as the proxy. |
| MobaXterm | In the SSH session, enter `ssh.<your-domain>` under "Network settings › SSH gateway". |
| WinSCP | Enter `ssh.<your-domain>` in the tunnel section of the advanced settings, or import your SSH settings file. |
| Phone | Use the console in your browser. |

**On an organisation network.** Your organisation's firewall must allow standard outgoing SSH to `ssh.<your-domain>`. If your network does not allow SSH, use the console in your browser; you do not need to download anything.

SSH connections are recorded: from which address, to which server, when, for how long and how much data; and who you are, if Turguz recognised you by the key you added to the panel. What you type over SSH and what appears on the screen are not recorded.

**Direct connection.** Some installations also offer a direct route to each server through a port set aside for it: then a **Doğrudan** (Direct) row appears in the server's details, and its command shows the platform's public address and your server's port. If the jump address is off, the same command sits on the **SSH** row. If the row is not there, you connect to your servers with the command above, through the jump address.

**Depends on your installation:** If this feature is not enabled in your installation, it does not appear in the panel; ask your platform admin.

Connecting through the jump address and SSH access from the internet are installation settings. When they are on, the command is written to match automatically.

### Console

In the server list, the «Konsol» (Console) button opens a terminal in your browser. The console works even if the server's network is broken; for everyday work, SSH is more comfortable.

If the network you are on blocks SSH, use the console: it goes through the same browser connection as the panel, and you don't need to install anything. The console opens without asking for a password: you get the server's command line and you are already logged in.

`sudo` asks for a password. You'll find it in the server's details, in the **Erişim** (Access) section, on the «Kurtarma parolası» (Recovery password) row; if you set your own SSH password when creating the server, that one applies and the row is called «SSH parolası» (SSH password). Only the person who created the server can see the password.

You can't transfer files through the console. To copy files, connect with `scp` or `sftp` from a network that allows SSH (see [SSH](#ssh)). If your server has internet access, you can also download the file from inside the server.

A console session lasts at most 12 hours; if the connection closes, press «Yeniden bağlan» (Reconnect). Closing the console does not stop the server.

Console connections are recorded: who connected, when, from which address and for how long. What you type in the console and what appears on the screen are not recorded.

## Stopping, starting, restarting

The «Durdur» (Stop), «Başlat» (Start) and «Yeniden başlat» (Restart) buttons in the server list act on a single server. If you select several servers, you can start or stop them all together.

## Changing the size

With «Boyutlandır» (Resize) you change the amount of CPU and memory. On a running server, the new size takes effect when you restart the server; until then, the list shows that it is waiting for a restart. The disk size cannot be changed.

## Internet access

By default, servers cannot connect to the internet; while internet access is off, domain names are not resolved either. To download packages or connect to an outside service, press «İnternet erişimi iste» (Request internet access) in the list and write your reason. Access is opened once an administrator approves it.

## Publishing the application on a server

To make a web application running on your server available on the internet, use the **Yayınlar** (Published services) section in the server's details. You can also connect your own domain there.

**Depends on your installation:** If this feature is not enabled in your installation, it does not appear in the panel; ask your platform admin.

Published services and your own domain are installation settings.

## Team members and server access

Only the person who created a server and the tenant admin can manage it. Another member's server appears locked in the list. If you need to manage it, press «Erişim iste» (Request access); your request goes to the server's owner, and if they approve, you can manage the server.

The tenant admin can give a member permission, with a written reason, from the **Erişim yetkileri** (Access permissions) section in the server's details, and can remove a given permission with «Erişimi geri al» (Revoke access). When a member's access is removed, their open console closes shortly after. Any keys the member added inside the server themselves must be deleted separately.

## Deletion and kept disks

The «Sil» (Delete) button deletes the server permanently. Your CPU and memory quota is freed at once.

To delete several servers together, tick the boxes on their rows and press «Sil» (Delete) on the bar that appears above the list. The window lists the servers you chose with their disk sizes; to confirm, you type the number of servers you chose. The servers are deleted one after another. Servers with an operation in progress and servers the platform manages cannot be selected. The number of servers you can delete at once is limited; the bar tells you the limit.

The server's disk, however, is kept for 7 days and keeps counting against your disk quota during that time. Kept disks are in the **Saklanan diskler** (Kept disks) section of the Servers page. You see a warning 3 days before a disk is deleted. Within that period:

- «Geri yükle» (Restore) creates a new server from the disk. Your data on the disk stays in place; the new server counts against your CPU and memory quota, and no extra disk quota is needed.
- «Sil» (Delete) deletes the disk right away and frees your disk quota. This cannot be undone.

When the period ends, the disk is deleted permanently on its own.

## Lease term

The **Kiralama süresi** (Lease term) box on the Servers page shows when your servers' leases end. A server without an end date runs until you delete it. If a server has been given an end date, the box shows the one that ends first, and you get a notification 14, 7 and 1 days before it ends. A server whose lease expires is stopped, not deleted.

A single server's lease is in the **Kiralama** (Lease) section of the server's details: the end date, the days remaining, what happens when it expires (the «Süre dolunca» (On expiry) row), the status and the extensions left.

### Extending the term

**Open the extension dialog**

In the server's details, press «Süreyi uzat» (Extend term) in the **Kiralama** (Lease) section.
**Enter the number of days**

In the «Gün» (Days) field, enter how many days to extend by; at most 90 days at a time. The dialog shows the new end date in advance.
**Extend**

Press «Uzat» (Extend). The section shows the new end date.

- An extension is added to the recorded end date, not to today.
- Each extension uses one of the lease's allowed extensions. A lease allows 2 extensions by default; the «Uzatma hakkı» (Extensions left) row shows how many remain. If you have none left, contact your platform admin for a longer term.
- «Süreyi uzat» (Extend term) appears only on leases that have an end date and have not expired yet; an expired lease cannot be extended. To extend, you need permission to manage the server: [Team members and server access](#ekip-uyeleri-ve-sunucu-erisimi).

## Security updates

If the «Otomatik güvenlik güncellemeleri» (Automatic security updates) box was ticked when the server was created, only the operating system's security updates are installed on their own every day. Software you installed and the operating system's major version are not touched.

The server does not restart on its own. Some updates take full effect only after a restart; then the server's details say «Güvenlik güncellemesi yeniden başlatma bekliyor» (Security update waiting for a restart). Press «Yeniden başlat» (Restart) at a convenient time.

## Monitoring a server

The «İzle» (Monitor) button in the server list opens graphs of CPU, memory, disk speed and network usage.

The **İşletim sistemi** (Operating system) section in the server's details shows what is read from inside the server: the operating system, how full the disks are and the state of security updates. If the server looks running but its operating system does not respond, the section says so; if it lasts, look from the console.

## The note inside the server

When the server first starts, a short note is written inside it. At every sign-in it reminds you of the command to connect and how to publish your application; the detailed version is in the `BENIOKU.txt` file in your home directory. Your password is not written in this note. The note carries the information of the moment the server started; the current command to connect is always in the panel, in the server's details.
