Linux Infrastructure

Linux Home Server

Built and configured a dedicated Linux home server from the ground up to provide centralized file sharing, remote network access, web hosting, and virtualization. The server became the foundation of my home lab and was used to host my first web project with Nginx.

Debian Linux Samba Tailscale Nginx KVM SSH
🌐 Home Network Router / Gateway
🖥 Linux Home Server Debian 13 • GNOME
EliteDesk Platform
192.168.x.x
📁 File Server Samba
|
Local File Sharing
🔐 Remote Access Tailscale VPN
|
Secure Remote Access
🌐 Web Server Nginx
|
Chrissy Rae's Cookies
Project Overview

Building My Own Linux Infrastructure

This project began with a small EliteDesk computer that I repurposed
into a dedicated Linux server. Rather than relying entirely on cloud
services, I wanted to build and manage infrastructure myself while
developing a stronger understanding of Linux administration and
networking.

The server was configured with Debian Linux and became the central
system for several home-lab services. Samba was configured to provide
file sharing across devices on my local network, allowing computers
such as my MacBook to access centralized storage.

I also configured Tailscale to create secure remote connectivity to
my home network. This allowed me to connect my MacBook back to the
server while working away from home and continue developing projects
without needing to expose the server directly to the public internet.

One of the first practical applications of the server was hosting
"Chrissy Rae's Cookies," my first web project deployed through Nginx.
This gave me hands-on experience with Linux web hosting, networking,
server configuration, and the process of taking a locally developed
website and making it accessible through real infrastructure.

The server eventually evolved into the foundation for a larger home
lab, including KVM virtualization for additional Linux and Windows
systems used for networking, security, and infrastructure practice.
Server Hardware

Repurposed Enterprise Hardware

Platform

HP EliteDesk

Processor

Intel Core i5-7500T

Memory

16 GB RAM

Storage

256 GB

Operating System

Debian 13 "Trixie"

Desktop Environment

GNOME

Architecture

x86-64

Purpose

Home Lab Infrastructure

Infrastructure Services

Services Running on the Server

📁 Samba

Configured network file sharing so local devices could access centralized files from the server.

🔐 Tailscale

Established secure remote connectivity to the home network without exposing internal services directly to the internet.

🌐 Nginx

Configured Nginx as a web server and used it to host the Chrissy Rae's Cookies project.

💻 OpenSSH

Configured SSH for remote administration and command-line management of the Linux server.

🛡 UFW

Configured the Linux firewall to control which network services were allowed to communicate with the server.

🌐 Networking & Troubleshooting

Configured network connectivity, IP addressing, firewall rules, and services while troubleshooting real-world Linux networking and access issues throughout the build.

⚙ KVM

Enabled hardware-assisted virtualization and used KVM to host additional virtual machines for continued lab work.

🖥 GNOME

Maintained a graphical Linux environment while also gaining experience managing the system through the terminal.

File Infrastructure

Centralized File Sharing

One of the first services I configured was Samba, turning the Linux
server into a centralized file server for devices on my local network.

The goal was to create a location where files could be stored and
accessed from multiple computers rather than maintaining separate
copies on each device.

This required learning how Linux permissions, ownership, directory
access, and network shares interact. I also used the project to become
more comfortable troubleshooting access and permission issues from
both Linux and client devices.

The result was a practical introduction to server-side storage
management and network file sharing.
Remote Administration

Managing the Server with SSH

SSH was configured to allow secure remote administration of the Linux
server without requiring physical access or a graphical session.

This allowed me to manage the server from other devices on my local
network and became especially useful while working remotely.

Through this setup, I gained hands-on experience with SSH
authentication, remote command-line administration, Linux permissions,
and troubleshooting connectivity issues.

SSH also provided a practical introduction to managing a server
primarily through the terminal rather than relying on the GNOME
desktop environment.

The SSH configuration became an important part of the server's
overall administration, working alongside Tailscale to provide
secure remote access to the system.

Remote Access

Connected to the Linux server remotely from other devices using the SSH protocol.

Command-Line Administration

Performed server administration, configuration, and troubleshooting through the Linux terminal.

Authentication

Configured SSH access and worked with Linux users, permissions, and authentication.

Secure Management

Used SSH as a secure management method rather than exposing the GNOME desktop for remote administration.

Remote Connectivity

Connecting Back to Home

To make the server useful outside my home network, I configured
Tailscale as a VPN-based remote access solution.

This allowed my MacBook to establish a secure connection back to
the home network while I was away. Instead of making internal
services directly accessible from the public internet, the VPN
provided authenticated access to the devices inside the lab.

This became especially useful for development. I could work from
outside the house while still accessing the Linux server and its
services as though I were connected locally.

The project gave me practical experience with VPN concepts,
private networking, remote administration, and secure access to
internal infrastructure.
Web Infrastructure

From Linux Server to Web Server

One of the most important milestones of this project was using the
server to host my first web project.

I installed and configured Nginx as the web server and deployed
"Chrissy Rae's Cookies" to the Linux system. This connected several
different areas of the home lab into a single practical project:

    Development
        ↓
    Linux Server
        ↓
    Nginx
        ↓
    Network Connectivity
        ↓
    Web Application

The project gave me experience with the relationship between a
website and the infrastructure required to serve it.

It also became the starting point for my interest in combining
systems administration, networking, and web development.
Security & Administration

Hardening the Server

Firewall

Configured UFW to limit network access to required services and reduce unnecessary exposure.

SSH

Used SSH for remote command-line administration and server management.

Fail2ban

Implemented automated protection against repeated authentication attempts.

Service Management

Learned to manage Linux services, networking, permissions, packages, and system configuration.

Virtualization

Expanding the Home Lab

As the home lab developed, the EliteDesk became more than a simple
file and web server.

Hardware virtualization was enabled and KVM was configured so the
system could host additional virtual machines. This provided a
platform for experimenting with different operating systems and
security tools without requiring additional physical hardware.

The virtualization environment was later used for systems including
Kali Linux, Wazuh, Ubuntu, Windows 11, and Metasploitable 2.

This allowed the same physical server to support multiple areas of
technical development:

    Linux Administration
    Networking
    Web Hosting
    Virtualization
    Security Testing
    Windows Infrastructure
Skills Developed

What This Project Taught Me

Linux Administration

Command-line administration, package management, permissions, services, networking, and system troubleshooting.

Networking

IP addressing, local network services, VPN connectivity, ports, firewall rules, and remote access.

Server Management

Deploying services, configuring access, troubleshooting failures, and maintaining a continuously running server.

Web Infrastructure

Understanding how Nginx, DNS, networking, and website files come together to deliver a web application.

Virtualization

Configured KVM and used virtualization to expand the capabilities of a single physical server.

Security Fundamentals

Applied firewall rules, VPN-based access, SSH administration, and brute-force protection.

Project Outcome

A Server That Became a Lab

What started as a small Linux server became the foundation for my
entire home lab.

The project gave me hands-on experience building infrastructure
instead of simply consuming it. I configured the operating system,
managed network services, created shared storage, established
remote connectivity, deployed a web server, implemented basic
security controls, and eventually expanded the system into a
virtualization platform.

Most importantly, this project connected several areas of IT that
I had been learning independently and gave me a practical
environment where I could continue experimenting.

The EliteDesk became the foundation for my ongoing work in Linux,
networking, systems administration, cybersecurity, and web
infrastructure.