Skip to Content
🚀 Quick StartChoosing a Server

Choosing a Server

You need a place to run your tools. That place is a VPS (Virtual Private Server) — basically a computer in a data center that you rent by the month.

⚠️ Heads Up: You can self-host on a Raspberry Pi or old laptop at home. But a VPS gives you a static IP, proper uptime, and you don’t need to worry about your ISP blocking ports. Start with a VPS. Go homelab later.

The Short Answer

Just get a Hetzner CX22. €4.50/mo, 2 vCPUs, 4GB RAM, 40GB SSD, 20TB traffic. It’ll run 5–10 Docker containers comfortably.

If Hetzner isn’t available in your region, get a DigitalOcean $6/mo Droplet.

That’s the recommendation. Below is the reasoning.

The Comparison

ProviderCheapest PlanCPURAMStorageBest For
Hetzner€3.79/mo2 shared4 GB40 GBBest value overall, EU & US
DigitalOcean$6/mo1 vCPU1 GB25 GBBeginners, great docs
Linode (Akamai)$5/mo1 vCPU1 GB25 GBSolid alternative to DO
Vultr$5/mo1 vCPU1 GB25 GBGlobal edge locations
OVH€3.50/mo1 vCPU2 GB20 GBBudget EU hosting
Oracle CloudFree tier4 ARM24 GB200 GBCan’t beat free (if you qualify)

What Specs Do You Need?

Here’s a rough guide based on what you want to run:

Use CaseRAMCPUStorageMonthly Cost
1–3 lightweight tools (Plausible, Uptime Kuma, Listmonk)2 GB1 vCPU20 GB~$5
An entire Bootstrapper Stack (Supabase, Coolify, Plausible, etc.)4 GB2 vCPU40 GB~$6
AI models (Ollama, Stable Diffusion)8+ GB4+ vCPU80+ GB~$15+
“I self-host everything”16 GB4 vCPU160 GB~$25

🔥 Pro Tip: Start small. You can upgrade a VPS in about 30 seconds. It’s way harder to downgrade. Get a 4GB plan and upgrade when you actually feel it.

Once you have a VPS, the setup is the same everywhere. Don’t just install Docker and leave it open; follow these steps to secure your investment.

1. Hardening SSH (Don’t skip this)

Root password login is a magnet for brute-force attacks. Use SSH keys.

# On your local machine: ssh-keygen -t ed25519 -C "your_email@example.com" ssh-copy-id root@your-server-ip # Now SSH back into the server: ssh root@your-server-ip

Disable password login:

nano /etc/ssh/sshd_config # Find and set: PasswordAuthentication no # Restart SSH: systemctl restart ssh

2. Configure the Firewall (UFW)

Only open the ports you actually need.

# Allow SSH, HTTP, and HTTPS ufw allow ssh ufw allow 80/tcp ufw allow 443/tcp # Enable firewall ufw enable

3. Install Docker & Compose

The easiest way is the official convenience script.

# Update the system apt update && apt upgrade -y # Install Docker curl -fsSL https://get.docker.com | sh # Install Docker Compose plugin apt install docker-compose-plugin -y # Verify docker --version docker compose version

4. Create a Non-Root User (Optional but Good)

Running everything as root is risky. Create a user with sudo privileges.

adduser dev usermod -aG sudo dev usermod -aG docker dev # Now log in as 'dev' for future work

That’s your server ready and secured. Every deploy guide in these docs assumes you’ve done this.

Next Steps

Your server is ready. Time to deploy something real:

The AltStack Starter Kit — Our recommended first set of tools → Deploy Guides — Pick any tool and deploy it