Millet Porridge

English version of https://corvo.myseu.cn

0%

Sharing My fnNAS Usage Experience

I’d heard of the fnNAS (飞牛NAS) system for a while and finally had time to try it. After a few days of use I’m quite satisfied. I have the chance to write two blogs sharing my usage — this one focuses on the user experience; the other will analyze its underlying system.

Background

Some friends know my own NAS doesn’t run a customized Linux system; instead I bought several portable drives mounted into Proxmox, then installed Debian to use.

1747492356082.png

Afterwards I manually started the Samba, Jellyfin and other services inside. Because there’s more than one machine — including cloud vendors’ — I use K3s to uniformly orchestrate these services.

1
2
3
4
5
(⎈|default:default)➜  BlogSource git:(master) ✗ kubectl get pods
jellyfin-web-b5488b69b-cz69t 1/1 Running 0 15d
timemachine-dbc898585-j4ln8 1/1 Running 0 42d
uptime-kuma-74b49dd555-qfnvz 1/1 Running 0 22h
samba-7c95544b86-qjj7q 1/1 Running 0 16d

I also have many extra services of my own, so I can only organize services in this form.

Installation

This time I actually installed fnNAS as a virtual machine in Proxmox, then attached virtual disks to it:

1747492896256.png

You can try the concrete process yourself; the final page looks roughly like this:

1747494483164.png

Some of My Uses

Cloud Drive Mounting

I’d always kept Baidu Cloud and Aliyun Drive memberships; this time there’s finally an official system that can mount them directly under Linux. I also mounted my existing SMB service over — fnNAS effectively acts as the hub of a home NAS.

1747495220013.png

Movies and Photos

Actually the reason I wanted to write a blog is that its movie/TV feature is too good. I added all the paths formerly in Jellyfin plus the movies and TV shows saved in cloud drives here.

I also installed clients on the TV and iPad while at it — a far better experience than Plex and Jellyfin.

1747495571675.png

Time Machine

Previously my Time Machine was done with a container mounting a disk, created like this. I expect I’ll move this function into fnNAS afterwards too.

1
2
3
4
5
6
name: timemachine
image: mbentley/timemachine:smb-20250328
hostPath:
- name: data
hostPath: /run/mount/AppleBackup/timemachine
podPath: /opt/timemachine

Cloud Drive Backup

My original backup scheme first synced to Windows with rclone, then backed files up via the Aliyun Drive client in a Windows virtual machine:

1
2
3
4
5
6
7
8
9
10
11
12
name: rclone-backup
type: yaml
image: rclone/rclone:1.68
template: rclone
command:
- /bin/sh
- -c
- while true; do rclone sync /data win-smb:/K3sBackup/${NODE_NAME} -v; sleep 7200; done
hostPath:
- name: data-sync
hostPath: /var/lib/K3sData/
podPath: /data

Now I can consider syncing files directly into fnNAS, then configuring its native backup scheme to put them in the cloud drive.

1747534861771.png

Adding New Disks

The disks on my other NAS probably won’t be touched again, but newly bought disks will probably be attached to fnNAS via PVE’s USB passthrough. As for RAID, I have no such need for now.

1747535408666.png

Summary

I quite like many of its features — it has basically realized the NAS in my mind. I even want to migrate some services here (Jellyfin, TimeMachine, alist). It also strengthens many features NextCloud supported poorly. If one day I open a studio, I’d probably use it as the internal sharing system — better than what many cloud SaaS services provide.