How an old gaming laptop became my homelab

A Lenovo Legion Y540, Arch Linux, SSH and Tailscale. How my "learn Linux" machine turned into the server that hosts my projects.

On this page
  1. The hardware
  2. Phase 1: a Linux desktop to learn on
  3. Phase 2: reachable from anywhere
  4. Phase 3: hosting things
  5. What I didn't do (yet)

Windows is my everyday OS. But I wanted to actually learn Linux, not just use WSL, so I put Arch Linux on my old gaming laptop, a Lenovo Legion Y540. It didn't stay a learning machine for long.

The hardware

It's not what you'd buy as a server, but it's more than enough for one:

Part Spec
CPU 9th-gen Intel Core i5
RAM 32 GB at 2666 MHz
GPU GTX 1650, 4 GB VRAM
Storage NVMe SSD for the system, plus a 1 TB HDD

The GPU turned out to matter later: it's enough to run small local language models, which is how ExamX started.

Phase 1: a Linux desktop to learn on

The first setup was a normal desktop: KDE Plasma, the multilib repository enabled (needed for 32-bit libraries), Steam, and Chrome from the AUR. Doing all of that on Arch, by hand, is a good crash course: package management, the AUR, systemd, and reading the wiki until things make sense.

Phase 2: reachable from anywhere

The step that changed what the machine was for:

  • OpenSSH, so I could work on it from my main laptop.
  • Tailscale, so I could reach it from anywhere without opening any ports on my home router.

Once I could SSH in from my Windows laptop on any network, the Legion didn't need a screen or a keyboard. It became a box I log into.

Phase 3: hosting things

From there it was a short step to serving websites. Instead of port forwarding, public traffic arrives through a Cloudflare Tunnel, and Caddy routes each domain to the right app running in Docker. My first site went live from it, and the plan is for it to host my hackathon demo sites, so they stay online for my CV long after the event credits run out.

The longer-term plan is a general-purpose server: hosting, VMs, storage and experiments.

What I didn't do (yet)

I set it up to work, not to be robust. No firewall, password SSH still allowed, no backups.

Update: a few weeks later ShipDoc moved onto it, and I asked for a proper audit. It found out exactly how much I'd skipped.