Before you install: getting a machine ready
Everything on this page happens **before** you run the installer. If you already have an
Ubuntu machine you can log into, skip to [Install and first setup](install-first-setup.md).
GeekStream runs on one computer that stays on. That computer can be a spare PC in your
house or a rented server in a datacentre. Both work. They are different in ways worth
understanding before you pick, because changing your mind later means doing this again.
---
Which machine?
### A PC at home
**Good when** you already have a spare desktop or mini PC, you have unmetered home
internet, and you want your media on a disk you can physically touch.
**The catch** is that your television reaches it over your home network, and reaching it
from outside the house needs either the built-in tunnel or a port forwarded on your
router. Many routers will not forward a port, and some internet providers do not give you
an address that can be reached at all. GeekStream's tunnel avoids that entirely, so this
is rarely a blocker — but it is the thing people hit.
Your machine also has to stay on. A laptop that sleeps when you close the lid is not a
server.
### A VPS (a rented server)
**Good when** you want it always on, always reachable, and not making noise in your house.
A VPS has a public address from the moment it exists, so nothing has to be forwarded.
**The catch** is disk. Providers sell CPU and memory cheaply and disk expensively, and
media is all disk. A £5/month VPS with 40 GB is enough to run GeekStream and stream from
Usenet, and nowhere near enough to download and keep a library.
**Also worth knowing before you pay:** some Usenet indexers refuse connections from
datacentre networks. They do this to stop account sharing, and it catches ordinary
single-user servers too. If you already have indexer accounts, check their policy on VPS
use before you commit — it is much easier to find out now than after everything is set up.
### What to actually buy
| | Minimum | Comfortable |
|---|---|---|
| Memory | 3 GB | 8 GB |
| Free disk | 40 GB | 100 GB or more |
| Processor | any 64-bit, 2 cores | 4 cores |
| Architecture | x86-64 or ARM64 | either |
The installer checks memory and disk and warns you if they are low. It does not stop you
— a small machine works, it just fills up sooner.
Both Intel/AMD (x86-64) and ARM (ARM64) are supported, so an Oracle Ampere, an AWS
Graviton or a Raspberry Pi-class ARM board are all fine.
---
Getting Ubuntu on it
GeekStream's installer is written for **Ubuntu 22.04 or 24.04**. Other Debian-based
systems usually work; these two are what it is tested against.
### On a VPS
Your provider will ask which image to install when you create the server. Choose
**Ubuntu 24.04 LTS**. That is the whole job — the provider installs it for you and gives
you a way to log in.
### On a PC at home
1. On any other computer, download the **Ubuntu Server 24.04 LTS** image from
**Ubuntu Server 24.04 LTS**, from the Downloads section of the Ubuntu website.
2. Write it to a USB stick with **balenaEtcher** — it is free and
does one thing.
3. Plug the stick into the machine that will run GeekStream and turn it on. You may need
to press a key at the moment it starts to choose the USB stick: it is usually F12,
sometimes F2, Esc or Del, and the screen normally tells you for about one second.
4. Follow the installer. When it offers **OpenSSH server**, say yes — that is how you will
log in from your normal computer later.
5. When it finishes, remove the stick and let it restart.
You will not need a monitor on that machine again after this.
---
Logging in
Everything from here is typed into a terminal on the GeekStream machine. You can sit at
the machine itself, or — much more comfortably — connect from the computer you normally
use.
### From Windows
Open **PowerShell** (press Start, type `powershell`, press Enter) and type:
```
ssh yourname@192.168.1.50
```
Replace `yourname` with the username you made during the Ubuntu install, and the address
with your server's. On a VPS, your provider shows you the address and the username — it is
often `root` or `ubuntu`. On a home PC, the Ubuntu installer prints the address when it
finishes; if you missed it, log in at the machine and type `hostname -I`.
The first time, it asks whether you trust the machine. Type `yes`.
### From a Mac
Open **Terminal** (Cmd+Space, type `terminal`) and use exactly the same command.
### If your provider gave you a key file instead of a password
```
ssh -i /path/to/your-key.pem ubuntu@203.0.113.10
```
On Windows the path looks like `C:\Users\you\Downloads\your-key.pem`. If it refuses the
key as "too open", that is a permissions complaint — on Mac or Linux run
`chmod 600 your-key.pem` first.
---
Two things worth doing before you install
**Update the system.** One command, and it saves a class of confusing failures later:
```
sudo apt-get update && sudo apt-get upgrade -y
```
If it tells you to reboot, do: `sudo reboot`, wait a minute, and log in again.
**Check you actually have the disk you think you have.** Some providers give you a large
disk that is not mounted where you expect:
```
df -h /
```
The `Avail` column is what GeekStream can use. If it is much smaller than you paid for,
sort that out with your provider before installing, not after.
---
What you do *not* need to do
You do not need to install Docker — the installer does it.
You do not need to open ports, configure a firewall, buy a domain name or set up DNS.
GeekStream's installer offers you an address that works from anywhere without any of that.
You do not need to create any accounts yet. Your Usenet provider, indexers and metadata
keys are all entered later, through the dashboard, where each one is explained as you
reach it.
---
Next: [Install and first setup](install-first-setup.md).