Create your server and log in
Provision a VPS through your chosen provider's dashboard, receive your server credentials, and successfully log in for the first time via SSH.
Lesson outcome
You will have a running VPS with an IP address, and you will have logged into it from your local terminal for the first time.
Why this matters in an agency
This is the moment you go from local to remote. After this lesson, you have a computer running in a data center that you can access from anywhere. Every tool, script, and workflow you build from this point forward can live on this server. That is a fundamental shift in what your agency can do.
Inputs, tools, and prerequisites
Your Contabo account (from the previous lesson). A credit card for billing. Your local terminal open and ready.
Step-by-step walkthrough
Create the server on Contabo
Log into your Contabo Customer Control Panel. Here is the step-by-step:
- Navigate to the Cloud VPS section and click to order a new VPS.
- Choose your plan — the Cloud VPS S (or equivalent 4 vCPU / 8 GB RAM tier) is the recommended choice.
- Choose your region: US East, US Central, or EU — pick whichever is closest to you.
- Choose your image (operating system): Ubuntu 22.04 or Ubuntu 24.04. If both are available, choose the newer one.
- Choose SSD storage (not HDD).
- Set a root password. Choose something strong — at least 16 characters with mixed case, numbers, and symbols. You will set up SSH keys in the next module, but you need this password for the initial login. Write it down securely.
- Complete the order.
Contabo provisioning takes a few minutes — sometimes up to 15 minutes depending on demand. You will receive an email with your server's details when it is ready. The email contains your server's IP address — a set of four numbers separated by dots, like 164.92.105.42. This is your server's address on the internet. Write it down. You will use it constantly.
You can also find the IP address in the Contabo Customer Control Panel under your VPS instances.
Store the credentials
You now have two pieces of information you need to keep secure:
- The server's IP address
- The root password you chose
Open a new terminal on your local machine, set your BWS access token, and store the root password as a secret:
```
export BWS_ACCESS_TOKEN="your-token"
bws secret create --project-id
```
Also store the IP address:
```
bws secret create --project-id
```
This is the BWS pattern in action. Credentials go into BWS the moment you receive them, not later when you remember.
Log in for the first time
In your terminal, type:
```
ssh root@your-ip-address
```
Replace your-ip-address with the actual IP address from the provider dashboard. Press Enter.
The first time you connect, your terminal will show a message asking if you trust this server. It will display a "fingerprint" and ask you to confirm. Type yes and press Enter. This is a one-time verification that you are connecting to the right server.
Then it will ask for the password. Type the root password you set during provisioning (the characters will not appear on screen as you type — that is normal security behavior). Press Enter.
You are now logged into your VPS. The terminal prompt changes to show that you are on a different machine — usually something like root@agency-vps:~# instead of your local machine's prompt. Everything you type now executes on the remote server, not on your laptop.
Look around
Try a few commands to confirm you are on the server:
```
hostname
```
This should print the hostname you chose during provisioning.
```
uname -a
```
This shows the operating system. You should see "Ubuntu" and a Linux kernel version.
```
free -h
```
This shows how much RAM the server has. It should match the plan you selected.
```
df -h
```
This shows disk space. You should see the storage amount from your plan.
You are on a real server. It is running. It is yours.
Log out
Type exit and press Enter. You are back on your local machine. The server continues running — it does not shut down when you disconnect. That is the whole point.
Failure modes and verification checks
The most common failure is a typo in the IP address or password when connecting via SSH. Double-check both. If the connection times out, the server may still be provisioning — wait a few minutes and try again. If you get "connection refused," the server's SSH service may not have started yet — give it another minute.
Another common issue: some providers block SSH access by default and require you to open port 22 in a firewall setting. If you cannot connect after several minutes, check your provider's documentation for firewall or security group settings.
Verification: you successfully logged in via SSH, ran hostname, and saw the name you chose during provisioning. You logged out and confirmed you are back on your local machine.
Implementation checklist
- Create a server through your provider's dashboard.
- Choose Ubuntu LTS, 2-4 GB RAM, closest data center.
- Record the IP address.
- Store the root password and IP address in BWS.
- Connect via
ssh root@ip-address. - Accept the host fingerprint on first connection.
- Run
hostname,uname -a,free -h, anddf -hto verify. - Log out with
exit.
Immediate next action
Move to the next module. You will set up proper SSH key access and then install Claude Code on the VPS. From that point on, the VPS becomes your primary operating environment.
Exercise
Log in to your VPS again. This time, create a file on the server to prove that it persists:
```
echo "This file was created on my VPS" > /root/first-file.txt
```
Log out. Wait a few minutes. Log back in. Then check if the file is still there:
```
cat /root/first-file.txt
```
It should print "This file was created on my VPS." This proves that the server retains state between your sessions — files you create stay there until you delete them. That is fundamentally different from a web-based chat where everything resets. The VPS is permanent storage and permanent compute. Log out when you are done.