The Tech Pulse

January 18, 20268 min read
Tags
  • Https
  • Server
  • Amzn
  • Playit
  • Laptop
  • Home
  • Links
  • Access
  • Ubuntu
  • Install
Share

Turning an Old Laptop into a Home Server! (2026)

One Sentence Summary

A practical guide turning an old laptop into a home server running Jellyfin, photo backups, and a Minecraft server today.

Main Points

  • Repurpose an old laptop into a low-cost home server.
  • Upgrade to an SSD and ensure adequate RAM.
  • Install Ubuntu Server via bootable USB for headless operation.
  • Storage note: disable LVM unless future expansion is needed.
  • Enable SSH for remote server management.
  • Set up CSOS (Casos) for easy app management.
  • Enable hardware-accelerated transcoding to improve media playback.
  • Create shared folders via CSOS and access them over the network.
  • Minecraft server setup with Crafty and simple external access via playit.gg.
  • Cost-conscious guidance and future-proofing with additional tools (Pi Hole, TailScale).

Takeaways

  • Start with what you have, then upgrade only when you need more performance or storage.
  • An SSD dramatically improves responsiveness on older hardware.
  • SSH access is essential for managing a headless server without a monitor.
  • CSOS provides an approachable GUI to install and manage server apps.
  • External access can be secured and simplified using free tunneling services like playit.gg.

Summary of the video transcript

Matt takes a “broken” older laptop (8th-gen Intel i3, 8GB RAM, 1TB mechanical drive) and turns it into a simple but capable home server. The laptop is slow and unresponsive in Windows, so he suspects the hard drive is failing. He opens the laptop, replaces the mechanical drive with an SSD, confirms temperatures are fine, and installs a fresh server OS.

From there, he shows a beginner-friendly path to getting real value out of old hardware:

  • Install Ubuntu Server (his base OS) from a bootable USB.
  • Enable SSH so you can manage the server remotely from another computer.
  • Install CasaOS (web UI) to manage apps, files, and services with “one-click” installs.
  • Use CasaOS file sharing to create shared folders for general files and media.
  • Install and configure:
    • Jellyfin for self-hosted media streaming (and fix playback by enabling Intel Quick Sync hardware transcoding).
    • Immich (“Immich without machine learning” variant) for phone photo backups.
    • Crafty Controller to create and manage a Minecraft server easily.
  • Finally, he demonstrates making the Minecraft server accessible to friends over the internet without port forwarding, using playit.gg tunneling.

He wraps up by suggesting other useful services you could add later (Pi-hole, Tailscale), and emphasizes a practical approach: use what you already have until you hit real limits, then upgrade.


Software and services used

Operating system / base layer

  • Ubuntu Server (ISO) – installed fresh onto the SSD as the host OS.
  • OpenSSH Server – installed during Ubuntu setup for remote terminal access.

USB creation / installation tooling

  • Balena Etcher – used on his main PC (Windows) to flash the Ubuntu Server ISO to a USB drive.

Server management UI

  • CasaOS – installed via a one-line command/script; provides:
    • web dashboard
    • file manager
    • app store
    • built-in SMB network shares (for Windows/macOS file browsing)

Apps installed via CasaOS App Store

  • Jellyfin – media server (Plex alternative).
  • Immich (he specifically uses the “without machine learning” variant because the main one wasn’t working for him).
  • Crafty Controller – web UI for creating/managing Minecraft servers.

Minecraft remote access / tunneling

  • playit.gg – free tunnel service to expose the Minecraft server externally without opening ports on your router.
  • Installed using a GitHub-provided script (he mentions a repo by “aboard dev”).

Mentioned (not installed in the walkthrough)

  • “Arr suite” tools (Radarr / Sonarr / Prowlarr etc.) for media automation (he references another tutorial).
  • Pi-hole (network-wide ad blocking)
  • Tailscale (easy remote access/VPN-like mesh networking)

How the setup was made (step-by-step flow)

1) Diagnose the laptop + upgrade the failing part

  1. Boot laptop into Windows → it’s extremely slow/unresponsive.
  2. Check BIOS → confirms:
    • Intel i3-8130U (8th gen)
    • 8GB DDR4
    • 1TB 5400RPM HDD
  3. Replace HDD with an SSD (he ultimately installs an empty SSD for the server OS).
  4. Checks temperatures → doesn’t need to re-paste.

Key point: 8GB RAM is “enough” for the beginner setup; don’t upgrade until you know you need it.


2) Create the Ubuntu Server installer USB (on a main PC)

  1. Download Ubuntu Server ISO.
  2. Download and install Balena Etcher.
  3. Use Etcher:
    • “Flash from file” → pick Ubuntu Server ISO
    • Choose the USB drive
    • Flash (USB contents will be wiped)

3) Install Ubuntu Server on the laptop

  1. Plug laptop into Ethernet + power (recommended near router).
  2. Boot from USB (uses F12 boot menu on Lenovo).
  3. Ubuntu Server installer choices:
    • language/keyboard defaults
    • network: Ethernet auto-detected
    • storage:
      • he disables LVM (“set up this disk as an LVM group” unchecked) for simplicity
  4. Create user/server profile (server name like laptop, username/password).
  5. Enable OpenSSH server during installation.
  6. Reboot and remove USB.

After reboot:

  • He notes the server’s local IPv4 address on the login screen (important for SSH + web UI access later).

4) Laptop-specific tweak: keep running with lid closed

Because it’s a laptop, he edits systemd logind config so closing the lid doesn’t suspend:

  • Edit: /etc/systemd/logind.conf
  • Change lid switch behaviors from suspendignore, and set related “yes/no” accordingly.
  • Reboot.

Result: the laptop can be closed and tucked away while still running as a server.


5) Remote into the server (SSH) and update it

From his main PC:

  1. ssh username@<server-ip>
  2. Run updates:
    • sudo apt update
    • sudo apt upgrade
  3. Reboot (sudo reboot) and SSH back in.

6) Install CasaOS (web-based management)

  1. He visits the CasaOS website and copies the provided install command.
  2. Pastes into SSH terminal and runs it.
  3. After install, he opens a browser to:
    • http://<server-ip>
  4. Completes CasaOS first-run setup:
    • create CasaOS username/password

Now he manages most things from the browser instead of the terminal.


7) Create shared folders (NAS-style) in CasaOS

In CasaOS Files:

  1. Create folders (example: “Matt’s files”).
  2. Enable Share on folders.
  3. On Windows File Explorer (or macOS Finder), connect via the provided network path.
  4. Copy files to the server over the LAN.

He also shares the default media folders:

  • Movies
  • TV Shows
  • Music

…and copies a large movie file into the Movies share to use with Jellyfin.


8) Install and configure Jellyfin (media server)

  1. App Store → install Jellyfin (one click).
  2. Jellyfin setup wizard:
    • create Jellyfin user/password
    • add libraries:
      • Movies → point to /media/movies
      • TV Shows → point to /media/tvshows
    • keep defaults for metadata + remote access settings

Performance fix (important part):

  • Playback is choppy at first because it’s CPU-transcoding.
  • He enables hardware acceleration:
    • Dashboard → Playback → Transcoding
    • Hardware acceleration: Intel Quick Sync
    • Enable desired hardware decode formats (he mentions enabling HEVC options if needed)
    • Save

Result: smoother playback + much lower CPU load.


9) Install and configure Immich for phone photo backups

  1. App Store → search “Immich”
  2. He installs Immich without machine learning (because the main app didn’t work for him).
  3. Immich setup:
    • create admin account (email + password + name)
    • choose theme/language/privacy defaults
  4. On phone:
    • install the Immich mobile app
    • enter the server address (he uses the local IP + port shown in browser, e.g. 192.168.0.141:2283)
    • log in
    • grant photo access + enable backup
    • select albums/photos to back up

Result: local “Google Photos/iCloud alternative” (on your home network).


10) Install Crafty and create a Minecraft server

  1. App Store → install Crafty Controller.
  2. Open Crafty (browser warns about connection privacy → he proceeds anyway).
  3. Find default credentials:
    • CasaOS Files → AppData → crafty → config → default credentials file
    • copy the long generated password
  4. Login to Crafty (he notes default username ended up being admin, not crafty).
  5. Create server:
    • server type: Minecraft
    • chooses Fabric (more performant in his experience)
    • version: 1.21.x (he selects 1.21.10)
    • allocate RAM min/max (example: 2GB–4GB)
    • port: 25565
  6. Start server, accept Minecraft EULA.
  7. Test locally:
    • Minecraft → Direct Connect → 192.168.0.141:25565

11) Make the Minecraft server accessible to friends (no port forwarding)

Instead of router port forwarding:

  1. Install playit.gg agent on the server using a GitHub script command.
  2. The installer outputs a link/code.
  3. In browser:
    • sign in / create a free playit.gg account
    • open the link/code to connect the agent
  4. Create tunnel:
    • choose free option (global anycast)
    • tunnel type: Minecraft Java
    • set local target: 192.168.0.141 port 25565
  5. playit.gg gives a shareable address (hostname).
  6. Friends use that address in Minecraft Direct Connect.

Result: external access without exposing your router ports directly.


If you want, I can turn this into a clean checklist you can follow on your own hardware (including the exact commands he used, plus a couple of “nice-to-have” hardening steps like setting static DHCP leases, enabling a firewall, and replacing default app passwords).

Related reading

Get New Posts

Follow on your preferred channel for new articles, notes, and experiments.

Related Posts