Turn Your Windows PC Into a Home Server in Just 30 Minutes!

by m_aditya in Circuits > Computers

23 Views, 0 Favorites, 0 Comments

Turn Your Windows PC Into a Home Server in Just 30 Minutes!

1740917593267.jpg

If you move between different locations frequently, keeping all your files in one place can be challenging. I wanted a solution that would let me store, access, and manage my files seamlessly from anywhere, without relying on third-party cloud services.

So, I turned my Windows PC at home into a personal storage and media server. My goals were simple:

Access my files from anywhere on any device

Stream my movies and TV shows remotely on Fire TV, phone, or another computer

Monitor server resources over the internet (CPU temperature & usage, memory usage, hard drive info, etc.)

Avoid running the server 24/7—turn it on/off remotely whenever needed

Despite having very little knowledge about servers, setting this up was surprisingly easy and quick. And guess what? You can do it too in just 30 minutes! Here’s how:

Setting Up Storage – NAS & Plex 📂🎬

My PC had a 500GB hard drive, so I split it into two partitions:

One for NAS (Network-Attached Storage) – to store and share files.

One for Plex Media Server – to stream my collection of movies and shows.

I enabled file sharing for both drives on Windows, making them accessible only on my local network. But I wanted remote access to my files, so I needed another solution.

🔗 Learn how to access your drive over a local network: Watch this tutorial

Making It Accessible From Anywhere 🌍

Since I am using my neighbor’s WiFi, I don’t have access to the router’s admin panel, so port forwarding was not an option. That’s why I needed a different solution to access my files remotely.

I found Tailscale, a secure, hassle-free way to connect to my server from my phone, laptop, or any other device—no matter where I was. With Tailscale, I didn’t need to worry about dynamic IPs, VPN configurations, or port forwarding!

To access my files directly on my phone, I used CX File Explorer, which supports browsing NAS devices seamlessly.

You can learn more about Tailscale and how to set it up on your machine here:

🔗 Watch this tutorial

HFS – Just Like Google Drive, But Private ☁️

There was one issue with Tailscale—every device needed Tailscale installed to access my files. That wasn’t convenient when I wanted to quickly share a file with someone who didn’t have it.

So, I found a better solution: HFS (HTTP File Server) by Rejetto.

What is HFS?

HFS is a lightweight file server that lets you share files over a network using a simple web browser interface. It turns your PC into a file-sharing server that works just like Google Drive but stays completely under your control. It offers features like drag-and-drop, bandwidth control, user access management, and now HTTPS support.

Making HFS Accessible Over the Internet:

To allow access without requiring Tailscale on every device, I used Tailscale Funnel on port 80. This made my HFS server available over the internet—anyone with the link could access and download files, just like a private Google Drive! 🗂️

Streaming My Media Anywhere 🎬

Next, I wanted to stream my movies and music on my phone, TV, or any other device. The best solution? Plex Media Server. I installed Plex, pointed it to my media folder, and enabled remote access using Tailscale.

Plex does have a built-in remote access feature (Plex Relay), but it’s slow and doesn’t work well with all networks.

I also wanted to enable Tailscale Funnel for Plex (port 32400), but since Funnel only allows one active instance at a time (I was already using it for HFS on port 80), it wasn’t possible. A workaround is setting up a proxy server like Caddy or Nginx, but I couldn’t get it to work properly.

So, to access my Plex media over the internet, all devices need Tailscale installed—but once set up, it works flawlessly!

Monitoring My Server 📊

To keep track of my server’s health and monitor its resources in real time, I installed Remote System Monitor (by Trigone) on my server. This app lets me view CPU usage, RAM, temperature, and more directly from my phone. It’s super simple to set up and is incredibly useful for monitoring my server remotely.

Accessing the Dashboard Over the Internet:

✅ Installed Remote System Monitor from the Play Store on my Android phone.

✅ Used Tailscale to securely access my server’s stats from anywhere.

🔗 Video on how Remote System Monitor works: Watch here

💡 Alternative: If you prefer a web-based monitoring tool, you can use Zabbix, which is more advanced but slightly harder to set up.

Make sure to optimize your Windows power profile settings based on your needs, such as adjusting hard drive timeout, disabling sleep, and tweaking processor state settings for better efficiency.

Automating Everything ⚙️

I didn’t want to manually log into Windows every time my computer turned on just to get my server setup running. So, I automated everything by setting up my services to start automatically when the computer boots up.

To do this, I used NSSM (Non-Sucking Service Manager)—a tool that allows you to run any application as a Windows service.

Services Set Up Using NSSM:

Plex (for media streaming)

HFS (for file sharing)

Tailscale Funnel (for public access to HFS) – using a batch file

🔗 Guide on setting up Windows services with NSSM: Watch here

Other services, like Tailscale and Remote System Monitor, can be set up as Windows services directly from their settings or during installation.

Remote Power Switch for My Server 🔌

IMG_20250301_203719.jpg
IMG_20250301_211554.jpg

I didn’t want my server running 24/7, so I needed a way to turn it on/off remotely.

To solve this, I built a smart power switch using NodeMCU (ESP8266) and MQTT. With this setup, I can control my server’s power from a web app over the internet, ensuring:

Remote control from anywhere.

Manual control in both online and offline modes.

No more wasted electricity! I turn the server on when needed and off when not in use.

🔗 GitHub Repository for this System: Smart Server Power Switch

The Future 🚀

This setup works reliably, but there’s always room for improvement! Here are some upgrades I’d like to implement:

Switching to Linux (Ubuntu) for better resource management.

Upgrading from HDD to SSD for faster access speeds.

Moving everything to a low-power laptop to save energy.

Exploring new tools like:

  1. Docker for better service management.
  2. Jellyfin as an alternative media server.
  3. Pi-hole to host my own ad-blocking DNS server.

Happy Building and Happy Exploring!