Skip to content

HomeServer-Guide πŸš€ Turn your old PC into a powerful Home Server with free & open-source tools! Set up Ubuntu Server, SSH, CasaOS, Jellyfin, Tailscale, and more for secure storage, media streaming, and remote access.

License

Notifications You must be signed in to change notification settings

Adamya-Gupta/HomeServer-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

26 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HomeServer-Guide

This is a guide for individuals who want to convert their old PC into a Home Server using free and open-source tools.

Purpose of Creating This Repository

  • 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.

Requirements

  1. An old PC or any PC you want to convert into a server.
  2. A USB drive (β‰₯ 16GB).
  3. A Wi-Fi router with an internet connection.

Overview

This is what we are going to set up:

Setup

Step1: Setting up UBUNTU SERVER OS

  1. Download Ubuntu server ISO (LTS version) from: https://ubuntu.com/download/server
  2. Make bootable pendrive using Rufus
  3. Boot your server(Old PC) from the pendrive and start setting up the ubuntu server on your system.

Important

Ensure you select "Install OpenSSH Server" while installing Ubuntu Server OS.

Reference Video HERE

Step2: DHCP IP Binding/Static IP

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


Step3: Configuring SSH

=> A network protocol that allows users to securely access and manage remote computers.

  1. Install OpenSSH on Ubuntu Server using the following command in terminal
sudo apt install openssh-server
  1. Check ssh status
sudo systemctl status sshd

Tip

If above command doesn't work,try:

sudo systemctl status ssh
  1. Start ssh service:
sudo systemctl start sshd
  1. Enable SSH to start automatically at boot:
sudo systemctl enable sshd
  1. Check username of ubuntu server:
whoami
  1. 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


Step4: Setting up CasaOS

=> 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

Step5: File Sharing Through CasaOS

  • CasaOS simplifies Samba file sharing.
  1. Click the "Files" icon on CasaOS Dashboard.
  2. Then select the folder which you want to share and click "Share".
  3. Copy the path and paste it in Windows File Explorer.
CasaOS Files
  1. Check "Connect using different credentials".
Map Network Drive
  1. Then enter the same credentials which you set while configuring ubuntu server OS
Accessing in Windows

Step6: Setting Up a Media Server

=> 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

Jellyfin on web browser

Jellyfin App on Android

  • Directories/Folders Structure example for jellyfin
Media
β”œβ”€β”€ Movies
└── Series
    β”œβ”€β”€ Series1_Folder
    |    β”œβ”€β”€ Season1
    |    └── Season2
    └── Another_Series2_Folder



Step7: Remotly accessing server from anywhere in the world

  • One of the most simplest way to achieve this is by integrating Tailscale

Caution

Do not use CasaOS for installing tailscale use terminal instead


  1. Commands for installing tailscale on Ubuntu Server:
curl -fsSL https://tailscale.com/install.sh | sh
  1. Connect your server to your Tailscale network:
sudo tailscale up
  1. 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

Tailscail Dashboard
TailscaleD TailscaleD

Step8: Setting up Immich

  • 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
Immich Dashboard


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.


Step9: Further Scope of Advancement

  • AI Server: Can setup OpenWebUI with Ollama 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

Conclusion

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!😊


About

HomeServer-Guide πŸš€ Turn your old PC into a powerful Home Server with free & open-source tools! Set up Ubuntu Server, SSH, CasaOS, Jellyfin, Tailscale, and more for secure storage, media streaming, and remote access.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published