This repository documents how I turned my old Dell Inspiron laptop into a flexible and secure homelab. It includes step-by-step notes on setting up remote access, file sharing, MeTube-powered media downloads, game emulator access, and a self-hosted Jellyfin media server—all tailored for Wi-Fi-only environments and seamless MacBook integration.
This project serves as both a learning log and a public portfolio as I grow my skills in networking, self-hosted services, and Linux system administration.
- Model: Dell Inspiron 13 7000 2-in-1
- Processor: Intel Core i5 (8th Gen)
- RAM: 8 GB DDR4
- Storage: 256 GB SSD
- OS: Ubuntu Server (version TBD)
- Power: Always plugged in (acts as 24/7 host)
- Form Factor: Laptop
- Model: MacBook Air (Apple Silicon, M1)
- OS: macOS Sequoia
- RAM: 8 GB Unified Memory
- Storage: 256 GB SSD
- Network: Wi-Fi only (802.11ac)
- Use Case: Remote access, file mounting (Samba), local emulation, Jellyfin streaming
- Wi-Fi: Integrated (primary connection)
- Ethernet: Not used
- MacBook Air (M1) – for streaming, remote access, and media control
- Secondary Laptop (used for transfer/setup)
- External hard drive (4 TB, used for Jellyfin and MeTube downloads)
- USB drives (media transfer)
- Surge protector + power switch
- Tailscale used for secure access across all devices
- Installed on:
- Dell Homelab Server
- MacBook Air (client)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --authkey <YOUR-AUTH-KEY>- Created a subnet route to access other LAN devices
- Enabled MagicDNS for easier access via hostname
- Static IP assigned to homelab via router settings (DHCP reservation)
- Tailscale IP used when away from home
- UPnP disabled
- Port forwarding NOT required (Tailscale handles tunneling)
- Firewall allows Tailscale range only
- Host and stream downloaded media (drama, anime, movies)
- Support subtitle files (SRT, embedded)
- Access on MacBook via browser or app
version: "3.8"
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
network_mode: host
volumes:
- /path/to/media:/media
- /path/to/config:/config
restart: unless-stopped- Access via
http://<tailscale-ip>:8096 - Auto-detects most metadata
- Embedded or
.srtsubtitle files are picked up automatically
- MacBook: Used Chrome + Tailscale login
- Subtitle encoding mismatch (resolved by setting UTF-8)
- Slow library scan (resolved by limiting folders scanned)
Access game emulators hosted on the homelab server from a MacBook client using network file sharing.
- PCSX2 (PS2)
- RPCS3 (PS3)
- DuckStation (PS1)
- Samba (SMB) used to expose
/gamesdirectory from homelab server - MacBook connects via Finder (⌘K > smb://[homelab-ip])
- Games and BIOS files accessed directly from mounted volume
[games]
path = /home/username/games
browseable = yes
read only = no
guest ok = yes- Open Finder > Go > Connect to Server…
- Enter
smb://<homelab-ip> - Mount the
gamesshare
- Ran emulators locally on MacBook using games from mounted network drive
- Verified no input lag or load issues with PS1/PS2 titles
- Streaming via SMB is stable over Wi-Fi for retro and mid-gen consoles
- For PS3/modern consoles, consider using a laptop that has more than 8GB RAM for faster performance
A web-based frontend for downloading media (YouTube, Dailymotion, etc.) with support for subtitles and format customization. Ideal for populating your Jellyfin media server.
version: "3"
services:
metube:
image: aleksilassila/metube
container_name: metube
ports:
- 8081:8081
volumes:
- /path/to/downloads:/downloads
restart: unless-stopped- Downloads placed into shared Jellyfin media folder (
/downloads) - Subtitle files (.srt) are fetched automatically if available
- Uses
yt-dlpunder the hood for more reliable downloading
- Open browser to
http://<tailscale-ip>:8081 - Paste video URL
- Select format (e.g., best + subtitles)
- Download directly to Jellyfin library
- If subtitle fetch fails, check subtitle language availability
- To download only subtitles: set format option to
--write-subs --skip-download
Built as part of my Computer Engineering & CS journey, this homelab is more than a server—it's my digital playground.