Skip to content

plan / spark

Spark: one vCPU, one job

The smallest FastNode server. Enough for a single service that needs a public IP, a real kernel and a London address.

$5/mo USDor $50/yr

Deploy Spark in London
vcpu
1
memory
2 GB
nvme disk
20 GB
port
1 Gbps
traffic
unmetered
ipv4
1 dedicated

Who Spark is for

Spark is for the server that does exactly one thing. A WireGuard endpoint so your laptop exits in London. A Caddy instance serving a static site and terminating TLS. A Discord or Slack bot. An uptime checker that pings your real infrastructure from outside it. A small Git mirror. Each of those idles at a few hundred megabytes of memory and barely touches a core.

It is also the cheapest way to get a clean, public London IPv4 with editable reverse DNS. Plenty of people buy one purely as a jump host: a fixed address they can allow-list in other firewalls and SSH through.

The 2 GB budget

Memory is the number to plan around. This is roughly what a minimal Debian 12 install with a typical single-service workload looks like after boot:

ComponentResident
Kernel, systemd, journald, sshd~150 MB
Caddy or Nginx20–60 MB
A small Node, Python or Go service80–300 MB
SQLite or a tiny Postgres50–250 MB
Page cache and headroomthe rest

That leaves well over a gigabyte for the kernel to use as page cache, which matters more than people think: on NVMe-backed storage a warm cache is what turns fast reads into instant ones. Once your resident set creeps past 1.4 GB, it is time to look at Boost.

Living with one core

A single vCPU handles request-response workloads well because most of their time is spent waiting on the network. What it handles badly is anything CPU-bound running alongside latency-sensitive work: compiling, image resizing, compression, a busy cron job. If your service stutters every time a backup runs, the fix is either to nice the background job or to move up a size.

# run a background job at lowest CPU and I/O priority
nice -n 19 ionice -c3 tar czf /root/site-$(date +%F).tgz /srv/site

20 GB of disk

A base image uses roughly 2–3 GB. That leaves plenty for a service, its logs and a modest data set. The things that fill a small disk unexpectedly are journald, old kernels and container images. Cap the journal on day one:

mkdir -p /etc/systemd/journald.conf.d
printf '[Journal]\nSystemMaxUse=300M\n' > /etc/systemd/journald.conf.d/size.conf
systemctl restart systemd-journald

If you run Docker, add docker system prune -af to a weekly timer, or images from old deploys will eat the disk a few hundred megabytes at a time.

A sensible first ten minutes

Spark boxes tend to be set up quickly and then forgotten for a year, so make the defaults safe before you walk away:

apt update && apt -y full-upgrade
apt -y install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
fallocate -l 1G /swapfile && chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

Then lock down SSH to keys only. The SSH hardening guide covers it in about five commands. Add a portal firewall rule allowing only the ports your one service needs, and you have a box that can safely sit unattended.

Good fits and poor fits

  • Good: VPN endpoint (see the WireGuard guide), reverse proxy, static or lightly dynamic site, webhook receiver, monitoring probe, DNS resolver for a small network, IRC or Matrix bridge.
  • Poor: anything with a JVM, a mail server with spam filtering, a CI runner for a real codebase, more than one database, a self-hosted Git forge with CI.

When to move

Move to Boost when you see the OOM killer in dmesg, when swap usage stays above a few hundred megabytes for days, or when you want the database on the same box as the app. Boost doubles memory, cores and disk for $3 more a month. There is no size below Spark; if it is too much machine, it is already the cheapest way to own a London IPv4.

Spark costs $5 a month or $50 a year, charged in US dollars. Images available on it include Debian 12, Ubuntu 24.04 and AlmaLinux 9.

Questions

Can Spark run Docker?

Yes, it is a full virtual machine. Two or three small containers fit comfortably. A Compose stack with a database, a cache and several app containers belongs on Boost or Turbo.

Should I add swap on 2 GB?

A 1 to 2 GB swap file is a sensible safety net so a memory spike slows the box down instead of triggering the OOM killer. Do not treat swap as extra RAM.

Can I run Windows Server on Spark?

We would not. Windows Server 2025 wants more memory and disk than Spark offers to be pleasant. Look at Turbo or above, and confirm licensing with support first.