Home NAS System

A home NAS system built on a Quectel Pi H1 single-board computer provides high-speed storage via SSD solid-state drives, enables file sharing using Samba service, supports multiple access methods, and provides a convenient private cloud storage solution for home users.

Development Resources Summary

Development Kit Accessories List

Component Name Quantity Specifications
Quectel Pi H1 Single Board Computer 1 Quectel Pi H1 Smart Ecosystem Development Board for Linux Learning with Python Programming and AI Kit
USB-A Power Adapter 1 Power Adapter
USB-C DP Cable / HDMI Cable 1 DP 1.4 spec; Length: 1m; USB-C (male) to USB-C (male)
HDMI 2.0 spec; Length: 1m; HDMI-A (male) to HDMI-D (male)
Ethernet Cable 1 Length: 1m; Gigabit transmission rate
SSD Solid State Drive 1 Official Raspberry Pi SSD Kit
CPU Cooling Fan 1 Raspberry Pi 5 Official Active Cooler with Heatsink and Thermal Pad
Display Screen 1 24-inch HDMI monitor

Parts Reference

image-20251020151024905

Get started quickly

Development Preparation

The Quectel Pi H1 comes pre-installed with Debian 13, so no re-flashing is required. Just follow the steps below.

Hardware Connection

Install CPU Cooling Fan

Plug the fan cable into the FAN header on the board, then secure the heatsink clips into the mounting holes as shown:

Install SSD

  1. Install 3 nylon standoffs using short screws.
  2. Attach the GPIO adapter firmly.
  3. Insert the PCIe ribbon cable into the board’s PCIe slot and secure both sides.
  4. Place the M.2 HAT+ on top and secure it with 3 long screws.
  • Front view after installation:
image-20251017154640006
  • Back view:
image-20251017174920100
  • Side view:
image-20251017155047092
  • Finally, place the M.2HAT+ on top of the nylon post and use the remaining 3 long screws to secure the M.2HAT+ in place.
image-20251017170504185

Display Connection

Connect one end of the HDMI cable to the HDMI port of the single-board computer and the other end to the HDMI port of the monitor.

image-20251017144027933

Input device connection

Connect the USB keyboard and mouse to the two USB-A ports on the single-board computer. If using a wireless input device, simply plug the receiver into the USB port.

image-20251017144124363

Network connectivity

Connect Ethernet cable from board to router (ensure internet access).

Jump cap connection:

Ensure the AUTO_POWER_ON pins are shorted with a jumper cap.

image-20251017144330473

Power Connection

Connect USB-A power adapter to the POWER IN port.

image-20251017172353513

Connection complete reference

image-20251017171408602

Project Implementation

Update package list

sudo apt-get update

Install Samba

sudo apt-get install samba

Create mount folder

sudo mkdir /mnt/resource

Set permissions

sudo chown -R username: /mnt/resource/

Check disk info

  • 1.List partitions
awk 'NR > 2 {printf "%-10s %s\n", $4, $3 / 1024 / 1024 " GB"}' /proc/partitions
image-20251016202247363
  • 2.Check filesystem type(Note: The Quectel Pi H1 board is mounted with ext4 by default, If the file type of the external storage device does not match the system, the storage device needs to be reformatted.)
sudo blkid
image-20251016200134877
  • 3.Check current mounts(If there is a mount point under /mnt/resource, you need to uninstall the mount point first)
df -h
image-20251016172803110
  • 4.Get UUID and user UID/GID
ls -lha /dev/disk/by-uuid
id username

image-20251016200316142

Modify configuration file

Here we use a 256GB solid-state drive as the NAS server, so we select nvme0n1 as the extended partition to mount and modify the fstab file.

sudo apt install vim
sudo vim /etc/fstab

Press ESC+"i" to add the following statement to the end of the file. After adding it, press ESC+"Shift + :", then type wq and press Enter to save and exit.

#Use ext4 as the file system, refer to the partition file type found in the previous step.
#Add the nofail option. The nofail option allows normal booting even if the device does not exist.
UUID=The UUID queried in the previous step /mnt/resource ext4 defaults,nofail 0 0

image-20251016201525703

Mount the drive

sudo mount /mnt/resource

image-20251016201719605

Configure Samba user

sudo smbpasswd -a username

Note: Enter the current user name and password. Please note that the user here must be an existing Linux user.

Edit Samba config

Enter the following command to open the configuration file

sudo vim /etc/samba/smb.conf

Add(The disk name in brackets is displayed externally)

[resource]
    comment = Resource
    create mask =0777
    directory mask = 0777
    path = /mnt/resource
    valid users = pi
    read only = no
    vfs objects = catia fruit streams_xattr

Check configuration

sudo testparm -s
image-20251016144346485

Restart Samba

sudo systemctl restart smbd
sudo systemctl enable smbd

Testing Samba service

  • To test if a mounted folder has the necessary permissions, enter the following command. If the test file appears, it means you can perform operations on that folder.
sudo -u username touch /mnt/resource/test_from_kane.txt

img

  • Test the Samba share connectivity in Windows CMD. If the custom resource folder is displayed, it proves that the NAS server has been successfully set up.
net view \\[NAS_IP]
img

Connecting to the NAS

Windows File Explorer (Easiest)

  • Set full permissions.
cd /mnt
sudo chmod 777 resource/
  • Next, enter the ip address command in the console to query the IP address of the single-board computer.

  • In Windows Explorer, input"\\\<NAS_IP>",You’ll see shared folders.

image-20251018113304151
  • Open resource to add/delete/edit files.

img

SCP Commands

  • Upload files from Windows to NAS server.
scp "local_file_path" username@nas_ip:/mnt/resource/
  • Upload an entire folder to the NAS server from Windows.
scp -r "local_folder_path" username@nas_ip:/mnt/resource/

CasaOS

CasaOS is an open-source home cloud system built on the Docker ecosystem, designed specifically for home users to provide simple, easy-to-use, and elegant personal cloud services. It allows users to quickly build and manage various home entertainment and smart applications, such as media servers, cloud storage, and ad blockers, through a user-friendly graphical interface.

  • Updated Source
sudo apt update
  • Install Docker
sudo apt install docker.io
  • Start the Docker service
sudo systemctl start docker
sudo systemctl enable docker
  • Check Docker service status
sudo systemctl status docker

After successful startup, the following is shown:

img
  • Full installation of wget
sudo apt install wget -y

When the following option box appears, just press Enter.

img

  • Install CasaOS
sudo apt install curl
curl -fsSL https://get.casaos.io | sudo bash

After successful installation, copy the URL in the red box and open it in the browser.

img

After creating a user, log in and click Files. After finding the folder mounted on the NAS server in the Root directory, you can directly upload, delete, modify, etc.

img img

Application Demo

Click to play demo video