This is a guide for individuals who want to convert their old PC into a Home Server using free and open-source tools.
-
Setting up a home server can be overwhelming due to the vast amount of information available online. This guide aims to simplify the process by consolidating essential steps and resources in one place.
-
Finding the right resources and services that can be easily integrated and are truly useful took a lot of my time.
-
I want to help people save time by providing a step-by-step guide.
- An old PC or any PC you want to convert into a server.
- A USB drive (β₯ 16GB).
- A Wi-Fi router with an internet connection.
This is what we are going to set up:
- Download Ubuntu server ISO (LTS version) from: https://ubuntu.com/download/server
- Make bootable pendrive using Rufus
- Boot your server(Old PC) from the pendrive and start setting up the ubuntu server on your system.
Reference Video HERE
Important
This ensures your server always receives the same IP address assigned during installation. Otherwise, DHCP will automatically assign a different IP each time, requiring you to reconfigure settings.
Tip
Router settings may vary. Look for options like "IP Reserve" or "Static IP."
=> Open your router's settings by entering the default gateway IP address in a web browser.
=> To find your router's IP address, enter the following command in the terminal:
-
for Windows
ipconfig
-
for Linux
ifconfig
=> A network protocol that allows users to securely access and manage remote computers.
- Install OpenSSH on Ubuntu Server using the following command in terminal
sudo apt install openssh-server
- Check ssh status
sudo systemctl status sshd
Tip
If above command doesn't work,try:
sudo systemctl status ssh
- Start ssh service:
sudo systemctl start sshd
- Enable SSH to start automatically at boot:
sudo systemctl enable sshd
- Check username of ubuntu server:
whoami
- Check the serverβs IP address:
hostname -I
=> To remotely access the terminal from a client device, enter following commands in the terminal of Client PC:
sudo ssh username@server_ipaddress
Eg:
sudo ssh adserver@192.168.1.9
-
Then update and upgrade the system :
sudo apt update
sudo apt upgrade
Reference Video :HERE
=> CasaOS provides a user-friendly dashboard to manage your server and supports apps in the form of Docker containers.
- Install CasaOS with the following command:
curl -fsSL https://get.casaos.io | sudo bash
Reference Github:HERE
=> After Setup, enter the server's IP in any browser to access the CasaOS dashboard.
- CasaOS simplifies Samba file sharing.
- Click the "Files" icon on CasaOS Dashboard.
- Then select the folder which you want to share and click "Share".
- Copy the path and paste it in Windows File Explorer.
- Check "Connect using different credentials".
- Then enter the same credentials which you set while configuring ubuntu server OS
=> Creating media server will give you freedom to stream your media on any device and anywhere.
=> We will integrate Jellyfin
- It automatically identifies the movie/series and provide metadata,ratings ,etc.
=> Open CasaOS Dashboard and install jellyfin through AppStore
=> Enter the below given address in any browser to access jellyfin server
http://localhost:8096
- Directories/Folders Structure example for jellyfin
Media
βββ Movies
βββ Series
βββ Series1_Folder
| βββ Season1
| βββ Season2
βββ Another_Series2_Folder
- Alternative Method for installing Jellyfin
=> CLI Method : Directly installing jellyfin on Ubuntu Server through terminal https://jellyfin.org/docs/general/installation/linux/
- One of the most simplest way to achieve this is by integrating Tailscale
Caution
Do not use CasaOS for installing tailscale use terminal instead
- Commands for installing tailscale on Ubuntu Server:
curl -fsSL https://tailscale.com/install.sh | sh
- Connect your server to your Tailscale network:
sudo tailscale up
- Find your Tailscale IPv4 address:
tailscale ip -4
Tip
If the device you added is a server or remotely-accessed device, you may want to consider DISABLING KEY EXPIRY
to prevent the need to periodically re-authenticate.
Reference Video: HERE
- Immich is a great alternative to Google Photos.
- Easily back up, organize, and manage your photos on your own server.
=> Open CasaOS Dashboard and install Immich through AppStore
- Enter the below given address in any browser to access Immich
http://localhost:2283
Tip
Turn on STORAGE TEMPLATE ENGINE
from settings, If you want your photos should be organised in proper folder instead of some random order of encryption.
- AI Server: Can setup
OpenWebUI
withOllama
LLM models to have your own chatbot running on your own server. - Ebook Server: Can Use Calibre-Web (Open Source alternative to Kindle)
- Automatic torrent Downloads using Prowlarr, Sonarr, Radarr etc:Reference
- File hosting services: Using NEXTCLOUD (Alternative to Dropbox,Google Drive,etc)
- Home automation : Using Home Assistant
By following this guide, you can successfully repurpose your old PC into a powerful and efficient home server.
If you run into issues, donβt get discouraged β troubleshoot, read articles on Reddit, Quora, and tech blogs, watch videos, and search for solutions. If one method doesnβt work, try another β thereβs always a way forward!
Keep refining, improving, and customizing your server to fit your needs. In the end, youβll have a powerful, self-hosted system that puts you in control of your data and digital life.
π‘If you think something is missing from this guide or have suggestions for improvement, please open an issue or contribute! Your feedback helps make this resource even better for everyone.
If you found this guide useful, please β star this repository on GitHub to help others discover it!
Happy hosting!π