Skip to content

Launch your first server

Tutorial · Updated Jul 2026

Launch your first server

This is the fundamentals path of the Quickstart: the honest IaaS on-ramp every other learning path builds on. The walkthrough takes about 30 minutes and uses a public web server as the working example. By the end, you'll have a running server on the public internet serving a page you wrote yourself, plus a working understanding of how the platform fits together.

Browser address bar pointing at a public IP and rendering the heading 'Hello from Alex on Quake AI'Click to zoom
The greeting page you'll publish in step 4, served from a Quake AI VM at its public IP

Prerequisites#

You need a Quake AI account with a project and a resource tier picked. If you have not done that yet, work through Get started at the top of the Quickstart first.

The walkthrough has five steps:

  1. Set up a secure login from your computer to your server.
  2. Configure your project's firewall to allow login and web traffic.
  3. Launch a server.
  4. Connect to the server, install web-server software, and publish a page.
  5. Delete the server when you're done (optional).

To follow along, you'll need:

  • A web browser and a terminal on your computer (macOS, Linux, or WSL on Windows).
  • About 30 minutes. Most of that is the server starting up and the web-server software installing.

You can follow the walkthrough through Quake AI's browser interface (the default), the command line, or OpenTofu (Terraform) code. From step 2 onward, each step has tabs for all three. Pick one and stay with it for the rest of the walkthrough.

If you work with an AI coding assistant, you can reach the same result by driving it instead: see How to provision a server with an AI agent.

The final step is optional. A running server uses your project's resources (a CPU core, memory, a public IP address) and stays reachable from the internet for as long as it's up. Step 5 walks through deleting the server when you're ready to clean up. If you want to keep the server running and experiment further, skip the final step.

1. Add an SSH key#

SSH (Secure Shell) is the standard protocol for logging into a Linux server from your terminal. Quake AI authenticates SSH with a key pair: a public key you upload to your project and a private key that stays on your workstation. SSH never transmits the private key over the network. See Key pairs for more.

Generate an SSH key pair on your local machine if you do not already have one:

bash
ssh-keygen -t ed25519 -C "[email protected]"

When prompted, press Enter to accept the default file location (~/.ssh/id_ed25519). Optionally set a passphrase.

Terminal showing ssh-keygen invocation, the resulting key fingerprint, and the randomart image for a new ed25519 key pairClick to zoom
Generating an ed25519 key pair from a local terminal with ssh-keygen

Upload the public key (~/.ssh/id_ed25519.pub) to your project. Name the key after the workstation that holds the private key. my-laptop, your hostname, or your username are all common choices. You will reuse this key for every server you create, so pick a name you will recognize later.

  1. In the portal, go to Compute > Key Pairs and select Create Keypair.
  2. In the dialog that opens, switch to the Import Keypair tab.
  3. Provide a name (for example, my-laptop).
  4. Paste the contents of ~/.ssh/id_ed25519.pub into the Public Key field.
  5. Select OK.
Create Keypair dialog with the Create Keypair tab selected and the Name field visible at the top of the formClick to zoom
Create Keypair dialog on the default Create Keypair tab; switch to Import Keypair before pasting the public key

Verify your key appears in the Key Pairs list before continuing.

Compute Key Pairs list showing the project key pairs (val-2026-05-c1-key, val-2026-q3-add-bastion-key, val-2026-q3-mig-auto-key, val-2026-q3f-qs-key), each with a name and a fingerprint columnClick to zoom
Key Pairs list (capture session) showing the existing project key pairs

2. Create a security group#

A security group is a virtual firewall attached to your instance's network port. Each rule allows specific inbound (ingress) or outbound (egress) traffic by protocol, port range, and source address. Every project includes a default security group that allows traffic only between its own members, so an instance using only default is unreachable from the internet. Create a dedicated group that opens TCP port 22 (SSH) and TCP port 80 (HTTP), then select it instead of default when you launch the server in step 3. See Security groups for more.

For production, restrict the SSH rule's Source (CLI flag --remote-ip) to your workstation's public address instead of leaving the default All Traffic (0.0.0.0/0). Port 80 stays open to the internet because you're running a public web server.

3. Launch your first server#

Launch a virtual machine on the PublicEphemeral network. Instances on this network receive a public IP directly, so SSH and HTTP work as soon as the instance reaches Active status.

4. Serve a page#

You are logged in to web-01 as ubuntu over SSH. Install nginx, write a page, and visit it from your browser.

Install nginx:

bash
sudo apt update
sudo apt install -y nginx

Ubuntu starts nginx automatically. nginx is already serving its default welcome page on port 80.

Replace the default page with your own greeting (substitute your name):

bash
echo '<h1>Hello from Alex on Quake AI</h1>' | sudo tee /var/www/html/index.html
Terminal session on the instance showing apt update output, apt install -y nginx output, and the echo tee command writing the greeting to the nginx document rootClick to zoom
Terminal showing sudo apt update, sudo apt install -y nginx, and the echo command writing the greeting to /var/www/html/index.html

Open http://INSTANCE_IP in your browser (substitute the public IP you used to SSH in). The greeting renders. nginx is serving the page from the Quake AI VM you provisioned and configured in this walkthrough.

To publish the same site on a domain you own, point your domain at the instance's public address before you add TLS with Let's Encrypt or a CDN in front.

Click to enlarge
Step 4: install nginx, write a page, and visit the public IP from a browser

Disconnect from the server:

bash
exit

5. Clean up#

A public web server should not run unattended. Delete the instance now that you have seen the page. You can reuse the SSH key (my-laptop) and the security group (web-access); leave them in place for the next server you launch.

You provisioned a public web server, viewed it in a browser, and deleted it. The same workflow extends to more complex projects: more instances, custom images, automation, self-managed reverse proxies, Kubernetes clusters. Where to go next:

Usage Guidelines

The sample code, software libraries, command line tools, proofs of concept, templates, and other related technology on this page (including any of the foregoing that is provided by Quake AI personnel) is provided to you as Quake AI Content under the Quake AI Customer Agreement, or the relevant written agreement between you and Quake AI (whichever applies). Do not use this Quake AI Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the Quake AI Content (such as sample code) as appropriate for production grade use based on your specific quality control practices and standards. Deploying Quake AI Content may incur Quake AI charges for creating or using Quake AI chargeable resources, such as running Compute instances or storing data in Object Storage. Your use is also subject to the Acceptable Use Policy.

For the full policy, see Usage Guidelines.

Last validated: 07.07.2026

Was this page helpful?