Skip to main content

Settings

Color Mode
Theme Skin
Background

Appearance preferences are saved in this browser only.

Environment
Current Environment Production

Built with JEKYLL_ENV=production. Changes require deployment.

Quick Links
Theme & Build
Jekyll v3.10.0
Last Build Aug 16, 14:29
Page Location
Page Info
Layout quest
Collection quests
Path _quests/0101/second-shift-server-resurrection.md
URL /quests/0101/second-shift-server-resurrection/
Date 2026-08-15

The Second Shift: Resurrect an Ancient Tower as Your Home Server

Repurpose a decade-old desktop into an always-available Docker host — Wake-on-LAN necromancy, a boot-to-tmux console, LAN-scoped firewalling, and the honest limits of old silicon.

⚔️ Lvl 0101Adventurer 🏰 Main Quest 🟡 Medium 90-120 minutes

The Second Shift: Resurrect an Ancient Tower as Your Home Server

Raise a retired PC from the closet and put it on the second shift as a wake-on-demand Docker home server.

Primary Tech
🛠️ docker
Skill Focus
Devops
Series
Homelab Operations
Author
IT-Journey Team
XP Range
⚡ 1500-2000

Hark, adventurer! In every homestead there stands a tomb — a storage closet where a once-mighty tower sleeps beneath dust and cable-tangle. The merchants would have you believe only new iron can serve, that a machine of fourteen winters belongs to the scrapheap. They lie. This quest is an act of necromancy: you will raise that machine, bind it with containers, teach it to sleep without dying and wake at a whispered packet, and set it working the second shift — while learning more about servers than any cloud console will ever teach you.

The reference corpse for this quest was a 2012 Core i7 tower. By quest’s end it ran ten containers and a monitoring stack. Yours will too.

📖 The Legend Behind This Quest

Old iron fails at exactly two things: single-thread bursts of modern compute, and anything demanding a current GPU. Everything else — holding databases, serving sites, watching networks, storing backups — is a memory-and-disk trade, and old towers are rich in both once their cheap DDR3 is maxed. The discipline this quest teaches is matching the workload to the machine: the same judgment that separates architects from shoppers. A server that costs nothing and teaches everything is the best training ground in the realm.

🎯 Quest Objectives

By completing this quest, you will:

Primary objectives (required for completion):

  • Install a minimal headless Linux on the old machine and mask every sleep target
  • Arm Wake-on-LAN and wake the box from your laptop with a magic packet
  • Boot the physical console into a shared tmux session that ssh attaches to
  • Run at least one compose stack and reach it from another device on the LAN
  • Scope every published port to your LAN subnet with UFW

Secondary objectives (bonus mastery):

  • Add a monitoring pane (btop + a docker ps watch) to the console session
  • Write a one-word shell function on your laptop that wakes and connects
  • Benchmark one workload the machine is bad at, and write down why

🗺️ Quest Prerequisites

Meet the requirements in the front matter above — most importantly: a retired tower, a laptop, and the will to disturb the dead.

🧙‍♂️ Chapter 1: Raising the Dead (Install & Never Sleep)

Install a minimal Debian or similar — no desktop environment; this machine’s face will be a terminal. Then perform the first rite, because consumer boards ship with treacherous power defaults:

sudo systemctl mask sleep.target suspend.target hibernate.target

A server that naps mid-apt upgrade will corrupt your trust before it corrupts anything else. The reference machine suspended itself on day one; masked targets ended that forever.

🧙‍♂️ Chapter 2: The Whispered Packet (Wake-on-LAN)

Enable WoL in the BIOS, then arm the NIC and persist it:

sudo ethtool -s eno1 wol g        # arm (persist with a small systemd unit)

From your laptop, the resurrection word:

wakeonlan aa:bb:cc:dd:ee:ff       # ~30 seconds to ssh-able

The box now has exactly two states — fully alive, or costing nothing — and you command the transition from your chair. Test it three times: cold boot, warm shutdown, and after a power cut.

🧙‍♂️ Chapter 3: A Face for the Headless (Shared tmux Console)

Attach that spare monitor and have tty1 auto-login into a tmux session named console. In your shell profile on the server, make interactive ssh logins attach to the same session. The spell’s effect: your laptop terminal and the physical monitor become one shared screen. Work started at the desk glows on the monitor across the room; a crash-looping container is seen from the kitchen, not discovered next Tuesday.

🧙‍♂️ Chapter 4: The Container Workbench

Install Docker. Every workload lives under ~/dev/<project>/ as a compose file — nothing installs on the host itself. When two stacks demand the same port, do not edit upstream files; lay an override beside them:

# docker-compose.override.yml
services:
  postgres:
    ports: !override
      - "5433:5432"

Then raise the gates, scoped to your own lands only:

sudo ufw allow ssh
sudo ufw allow from 192.168.4.0/24 to any port 4000 proto tcp
sudo ufw enable

Every rule answers to a service you can name. If you cannot name it, it does not get a rule.

🎮 Mastery Challenges

  • ⚔️ The Honest Wall: Run a quantized 7B language model on the old CPU (Ollama makes this easy). Record tokens/second. The reference tower managed 4.4 — a working miracle and a useless tool. Write three sentences on why (hint: AVX2), and name where that workload should live instead.
  • 🛡️ The Observatory: Stand up an ELK or similar stack in containers and ship the system journal into it. Old iron runs enterprise observability shockingly well — prove it with a dashboard.
  • 🏹 One Word: Build a myserver shell function with subcommands: bare = connect, wake, ps, logs <container>. Friction is the real final boss of every homelab.

🏆 Quest Rewards & Achievements

Completing this quest grants the badges and skills listed in the quest scroll above — and a server with a pulse, a second shift, and a zero-dollar invoice.

🗺️ Next Steps in Your Journey

With an always-available host of your own, carry your loot onward to Secrets Management — real machines demand real credential hygiene — and deepen the container craft in Environment Management.

🤝 Quest Completion Checklist

  • Sleep targets masked; box survived a week without napping
  • Woken from a magic packet three different ways
  • Physical monitor and ssh share one tmux session
  • A compose stack reachable from a second device on the LAN
  • UFW rules scoped to the subnet, each one explainable
  • The Honest Wall challenge written up: what this machine cannot do, and why

🎁 Rewards

75 XP

Badges

  • 🏆 Necromancer of Iron - Raised dead hardware into a working server
  • 🛡️ Warden of the Gate - Scoped every service to the LAN with UFW

Skills unlocked

  • 🛠️ Wake-on-LAN & headless server administration
  • 🧠 Workload-to-hardware matching

Features unlocked

  • Secrets and environment quests hardened on your own always-on host

🕸️ Quest Network

Loading quest graph…

Click a node to open the quest · ⌘/Ctrl-click for a new tab · drag to reposition · scroll to zoom.