fnOS Experience, Mac Mini M4 Installation Configuration CasaOS Pitfall Guide#
Tags: HomeLab, MacMini
Created At: May 15, 2025 1:14 (GMT+8)
1. The fucking All-in-one Homelab is here#
Since I bought the Mac Mini with a national subsidy discount during the May Day holiday, I've been tinkering with macOS and NAS systems. This period of experimentation has taken a lot of time, and I've encountered many pitfalls. During this time, I even re-flashed the machine's firmware while waiting for updates, which was a really good show. I hope next time I can have someone accompany me while re-flashing.
Back to the point, I bought the Mac Mini because various bloggers recommended it for use as a NAS. The popularity of fnOS was also high, and I happened to catch a significant national subsidy discount. After the discount, the 16+256 M4 Mac Mini only cost 2899, which led me to impulsively place an order in the middle of the night.
In the past few days, I've had a simple experience with the Mac Mini. Although I had tinkered with Hackintosh during college, this is my first time using a genuine Mac. In fact, installing CasaOS is quite simple; rather, it was the various applications on top that took some time, which is a laborious task.
Here's a simple showcase of the results:
Next, I'll list the hardware and costs for this HomeLab setup, as well as the specific applications or services that were installed:
2. Hardware#
- MacMini M4 16g+256G version PDD price: 2899 yuan
- Haibeisi MacMini M4 Dock JD price: 834 yuan
- Baiwei NV7400 SSD JD price: 299 yuan
3. Software#
- alexblue's MacMini M4
- orbstack —— Lightweight docker manager and Linux virtual machine
- Debian —— orbstack virtual machine, convenient for installing CasaOS
- CasaOS —— Lightweight NAS system (it's a system but not really a system)
- HomeAssistant —— Open-source smart home management
- Homarr —— All-in-one management panel
- Alist —— Mount local hard drives and various cloud drives, a good companion for NAS
- Nextcloud —— Locally deployed cloud storage, although many say performance is poor, I haven't found a better alternative yet; Seafile is still being tinkered with, and I'll decide after comparing.
- Syncthing —— LAN file synchronization tool
- Aria2+AriaNG —— Multifunctional download tool
- AutoBangumi —— Automatic anime tracking tool
- Cloudflared —— Intranet penetration tool, still deciding on different solutions, a temporary solution before the final one
- dash. —— Hardware information display and monitoring
- Grafana —— Open-source data visualization tool, can be used to visualize Strava exercise data
- Hasspanel —— Third-party panel for HomeAssistant, works wonders with HA
- Jellyfin —— NAS home media server
- Plex —— Same as above, but Plex
- UptimeKuma —— Website and service status monitoring
- PostgreSQL —— Database
- pgAdmin4 —— Database management panel
- qBittorrent —— Powerful Bittorrent download tool
- 1Panel —— Server management panel, convenient for managing applications and services
- dpanel —— Docker management panel, convenient for managing Docker
Currently, there are this many applications or services installed. Most applications are configured, but there are still a few with various issues. Here are some problems encountered during the installation process and their corresponding solutions:
4. Problems/Errors Encountered During Installation and Solutions#
1. qbittorrent under docker enabling alternative webui error "unacceptable file type, only regular file is..."#
The absolute and relative paths for configuring qbittorrent do not match, causing the custom webui placed in the config directory to have an incorrect path defined in the qb software as /config/yourwebui
, resulting in the error.
2. qBittorrent webui false true#
When configuring qBittorrent webUI, if you encounter an issue where you cannot access the backend after making changes, it is usually due to an incorrect path for the UI files. You can directly search for qBittorrent webui false true and follow the steps to resolve it:
If you need a one-click recovery, you need to change qbittorrent.conf
Configuration file path reference:
/xxx/xxx/config/qBittorrent/qBittorrent.conf
Change WebUI\\AlternativeUIEnabled=true
to: WebUI\\AlternativeUIEnabled=false
, save and restart.
3. Jellyfin Configuration#
When configuring Jellyfin, there is a major pitfall regarding the choice of docker network. I don't know if I accidentally selected something during the first installation or if the docker image provided by the CasaOS app store has issues. When installing the Jellyfin server, the network should be set to host, but if you choose bridge, Jellyfin will map several ports. If you install it this way, CasaOS will default the Web UI port to 8097. When you click the Jellyfin icon to access it, you will open a client instead of the server, only having the option to add a server, and you cannot register or log in, nor manage your resources.
The solution is to change the docker network option to host and set the Web UI port to 8096. Then access it, and you will enter the server interface, where you can register and log in according to the prompts.
4. Other Issues#
AutoBangumi was supposed to work normally after configuration, but I found that every time I restarted the virtual machine, it would have issues, and the service would go offline.
It seems to be related to docker port issues. I tried several times to install AutoBangumi and Aria2+AriaNG simultaneously, and after a restart, one of the services would always crash, sometimes the former, sometimes the latter, and sometimes both. I couldn't figure it out.
Lastly, I want to mention a major bug: the issue of applications disappearing after a restart. After completing the configuration, I tried restarting the machine several times, and each time, the applications installed through CasaOS had a chance of disappearing. The fixed few that are prone to crashing and disappearing are: pgAdmin4, AutoBangumi, Aria2+AiraNG.
5. fnOS, CasaOS Tinkering Experience#
It all started when I saw a video on Bilibili about installing fnOS on MacMini M4. Coincidentally, I had previously heard discussions about the strong performance of MacMini (which was later confirmed), and since I had been tinkering with various services using an R2S I bought a year or two ago, I had always wanted to replace it with a more powerful hardware for a HomeServer.
Interestingly, during this time, I saw the price of MacMini M4 drop by several hundred yuan, from just over 3000 to below 3000, and then it dropped to 2899. I really couldn't sit still, so I impulsively placed an order.
1. Unsatisfactory fnOS#
Upon receiving it, I encountered the first problem. It wasn't until I was installing fnOS that I realized I had bought an Arm architecture device to tinker with fnOS, as I only learned during the installation that fnOS does not have an arm version. If I wanted to install it, I could only run it through UTM simulating x86, which has poor performance.
If it were just poor performance, I could tolerate it, because the MacMini is not lacking in performance; running a NAS is more than sufficient. How much performance loss could simulation cause? I comforted myself with this thought.
After installing fnOS, I encountered the second problem: UTM could not recognize my SSD at all. Later, I learned in the comments of the video that prompted my order that UTM does not support simulating hard drives connected via Type-C, and my SSD is connected through the Thunderbolt port on the MacMini (I don't quite understand the expansion dock interface; I don't know what type the M.2 interface of the SSD counts as, but it just cannot be simulated or mounted). I tried plugging a USB-A flash drive, and it mounted normally, so I had to give up.
Other aspects of fnOS are decent; the management interface UI is very simple, and the functionality is acceptable. The apps on various platforms are quite complete, and the media apps reportedly have good scraping effects. However, since I couldn't mount the hard drive, I only had a superficial experience and didn't delve deeper.
In terms of performance, during the experience, it was evident that this is a new system with poor optimization. Every time I opened the NAS management panel homepage, the CPU usage would spike, and it might also be due to the poor performance of the simulation. When I installed immich, the CPU usage maxed out while processing in the background, and the memory was fully utilized, causing the activity monitor to turn red. It really felt like the performance of UTM simulating x86 is quite poor.
Helplessly, I had to turn my attention to other systems.
2. CasaOS#
This is the origin of the article's title, installing and experiencing CasaOS. Strictly speaking, I actually installed CasaOS twice. After the first installation, I found that there was a process in the macOS activity monitor under the disk read/write category that was reading and writing to the disk abnormally frequently, even reaching TB/day levels, which was impossible to ignore. I searched for information and found an issue on the GitHub repository that said reinstalling could solve it.
So I followed the advice, but the result was—useless, it had no effect.
After a few days of simple experience with CasaOS, I felt that both advantages and disadvantages were very obvious. The advantage is that this graphical interface is relatively friendly for users who have never tinkered with docker but want to experience a so-called lightweight NAS. The point-and-click operation to configure docker is a somewhat elegant choice.
However, after these few days of simple experience, I feel that this "simplicity" and "worry-free" often need to be put in quotes. During the tinkering process, if I pretend I have no Linux knowledge, the process does not seem so worry-free. For example, as I mentioned above, some applications installed through CasaOS directly disappeared after a restart; they just vanished, did not exist anymore, and even the pulled local images were gone, let alone the docker running logs and system logs. It was really difficult to trace the source of the problem and find a solution.
Such inexplicable errors are more nauseating and frustrating than software crashing halfway through because there are no logs to trace; the applications just disappear inexplicably. Corresponding to the product's positioning—light NAS "system," I think such bugs are unacceptable. If it is the system's inherent behavior, you should at least prompt the user about what the problem is. If not, this system has been around for so many years, and if I encountered this problem as a first-time user, I really wouldn't know what to say.
Lastly, I want to mention a complaint: the docker installations I manually installed or installed through other management panels like 1panel or dpanel display like this on the CasaOS panel homepage:
I don't know what CasaOS means by this. To put it bluntly, CasaOS itself is just a software layer dependent on Debian, and it hardly qualifies as an "OS." Now, the applications I manually installed are displayed as "old applications" on your panel, and I cannot directly open them through the panel. I find it a bit overstepping.
If I were to say, either don't display them here; the docker mappings, paths, etc., of the applications I manually installed differ significantly from CasaOS and cannot be displayed correctly. If you don't display them, I can understand. Now you display them on your panel and tell me they are "old applications," and I can't directly click the icon to open my service; clicking will directly reinstall the version from your store. It's as if you are telling me that the content in your store is "authentic," and the user-installed applications are "old versions," which is quite strange and hard to understand.
Next, I'm not sure whether to switch systems or patch things up for now. Perhaps the immediate priority is to manually migrate the applications and services installed through the CasaOS panel to manual installations, as no one wants their applications and services to disappear after a restart.
That's about it for now, goodbye!