Creating your own Network Attached Storage (NAS) system at home using Ubuntu is an excellent way to store, manage, and share your data efficiently. This guide will walk you through the process step-by-step, from setting up the server to installing useful packages that can enhance your NAS experience.

Why Set Up a NAS?

A NAS system provides centralized storage for your home network, allowing multiple devices to access and share files seamlessly. It can be used for backups, media streaming, file sharing, and more, making it a versatile solution for your data needs.


Before you start, ensure you have the following:

  • A computer with Ubuntu installed (preferably the server edition for a minimal footprint).
  • A stable home network.
  • Storage drives (HDDs or SSDs) for data storage.
  • Basic knowledge of using the terminal and Ubuntu commands.

Step-by-Step Guide to Setting Up Your NAS

1. Install Ubuntu Server

If you haven’t installed Ubuntu Server yet, download the latest version from the official website and follow the installation instructions. Ubuntu Server is recommended for NAS due to its lightweight and headless configuration.

2. Update Your System

Before setting up your NAS, ensure your system is up to date:

sudo apt update
sudo apt upgrade

3. Install and Configure Samba

Samba is a software suite that provides file and print services to SMB/CIFS clients. It is essential for creating a NAS that is accessible from Windows, macOS, and Linux systems.

Install Samba:

sudo apt install samba

Edit the Samba configuration file to set up your shares:

sudo nano /etc/samba/smb.conf

Add the following configuration at the end of the file:

   path = /path/to/your/share
   browsable = yes
   writable = yes
   guest ok = yes
   read only = no

Replace /path/to/your/share with the actual path to your storage directory. Save and exit the editor.

Create the shared directory and set permissions:

sudo mkdir -p /path/to/your/share
sudo chown -R nobody:nogroup /path/to/your/share
sudo chmod -R 0775 /path/to/your/share

Restart the Samba service:

sudo systemctl restart smbd

4. Install Webmin for Easy Management

Webmin is a web-based interface for system administration for Unix. It simplifies the process of managing your NAS.

Install Webmin:

sudo apt install wget
wget -qO- | sudo apt-key add -
sudo add-apt-repository "deb sarge contrib"
sudo apt update
sudo apt install webmin

Access Webmin by navigating to https://<your-server-ip>:10000 in your web browser. Log in with your system credentials.

5. Install and Configure FTP Server

For additional file transfer capabilities, you can install an FTP server like vsftpd:

sudo apt install vsftpd

Edit the vsftpd configuration file:

sudo nano /etc/vsftpd.conf

Make the following changes to enable local user login and write permissions:


Restart the vsftpd service:

sudo systemctl restart vsftpd

6. Set Up Network File System (NFS)

NFS is another protocol that allows file sharing over a network. It is particularly useful for Linux systems.

Install the NFS server:

sudo apt install nfs-kernel-server

Edit the exports file to define the directories to be shared:

sudo nano /etc/exports

Add the following line:

/path/to/your/share *(rw,sync,no_subtree_check)

Apply the changes:

sudo exportfs -a
sudo systemctl restart nfs-kernel-server

7. Install Plex Media Server

For those interested in media streaming, Plex Media Server is a fantastic package that allows you to stream your media to various devices.

Install Plex Media Server:

sudo dpkg -i plexmediaserver_1.22.0.4163-8c9e2bfb3_amd64.deb

Access Plex by navigating to http://<your-server-ip>:32400/web and follow the setup instructions.

8. Set Up Backup Solutions

To ensure your data is safe, set up regular backups using tools like rsync or duplicity. For instance, to back up your NAS data to an external drive using rsync:

rsync -av --delete /path/to/your/share /path/to/backup/location

Interesting Packages to Enhance Your NAS

  1. Nextcloud: A self-hosted file sync and share platform.
  2. Transmission: A BitTorrent client that you can use to download files directly to your NAS.
  3. Docker: To run containerized applications on your NAS.
  4. OpenVPN: For secure remote access to your NAS.


Setting up a NAS using Ubuntu at home is a rewarding project that provides you with centralized storage, media streaming, and easy file sharing capabilities. With tools like Samba, Webmin, Plex, and various other packages, you can customize your NAS to suit your needs. Follow this guide to transform your Ubuntu server into a powerful NAS solution, making your data management efficient and accessible.


An amateur radio operator, Royal Signals veteran, jack of all trades and master of none.

Leave a Reply

Your email address will not be published. Required fields are marked *