简体中文 / [English]


Transforming a Wanku Cloud into a Home NAS - Based on OpenMediaVault

 

This article is currently an experimental machine translation and may contain errors. If anything is unclear, please refer to the original Chinese version. I am continuously working to improve the translation.

Originally planned to keep digging into my school’s internal network over winter break, but accidentally bricked the school server…

Too lazy to go back to campus to fix it, so I just gave up.

Then I shifted focus to planning my All-in-One setup for summer. Hardware is picked out—I’m now stuck debating software options.

Currently leaning toward UnRaid with a black Synology (DSM) VM.

But since the hardware hasn’t arrived yet, I can’t experiment with UnRaid directly.

So I decided to try OpenMediaVault (OMV) on my Wanku Cloud first—get a feel for NAS configurations. (Even though I don’t plan to use OMV in the final build…)

0x00 Flashing Debian onto the Wanku Cloud

I originally compiled my own firmware for the Wanku Cloud. Later, I found someone else had already built a newer kernel version with Docker support—and it looked better maintained than mine. (Well, not perfect though: there are many Wanku Cloud variants, and this firmware doesn’t work properly with the USB port on my model. Tried debugging for hours, no luck—gave up eventually.)

Armbian_20.12_Aml-s812_buster_current_5.9.0-rc7.img SHA256:A73ECB7B8D79AC54E39E97A35B89E8E81913EA5D43B7C666FBA8654D43CC7E00

Download link: https://www.right.com.cn/forum/thread-4057492-1-1.html.

In fact, any Debian-capable device can run OMV and follow the steps below to set up a NAS.

Flashing procedures vary by device, and plenty of guides are available on forums like Enshan—won’t repeat them here.

Pitfall: Initially installed Ubuntu, only to realize later that OMV is deeply integrated with Debian and doesn’t support Ubuntu… Had to reflash the system.

0x01 Installing & Configuring OMV

After installing the OS, first set up Chinese language support, adjust the timezone, assign a static IP, upgrade packages, and do some personal tweaks—then get ready to install OMV.

The official repository is a bit slow. I added BFSU’s domestic mirror:

deb https://mirrors.bfsu.edu.cn/OpenMediaVault/public/ usul main

Also need to add the GPG key:

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 7E7A6C592EF35D13 24863F0C716B980B

Then run apt update and apt install openmediavault.

Once installed, just visit http://your-wankucloud-ip/ to access the OMV WebUI.

Default username: admin, default password: openmediavault

OMVWebUIOMVWebUI

(As mentioned, OMV is tightly integrated with Debian—many system settings can be modified directly via the WebUI.)

Pitfall: For some reason, after installing OMV, the DNS servers set in /etc/network/interfaces stopped working… Had to manually configure DNS in /etc/resolv.conf.

Also installed the popular OMV-Extras plugin. Just download the package from the official site and install it either via WebUI or SSH.

0x02 Storage Configuration

I wanted to experiment with RAID, but since only one USB port works on my device, I tried using a 32GB SD card and a 32GB USB drive to set up RAID0 for testing. However, OMV doesn’t allow USB devices in RAID by default. Tried tricking the system with lvm2—still got errors. Eventually gave up. Decided to go with UnionFS instead.

From the WebUI, go to System → Plugins and install the unionfilesystem plugin. This storage method is somewhat similar to UnRaid.
It’s a storage scheme based on filesystems rather than entire disks—similar to RAID, but UnionFS merges multiple filesystems (not whole disks) into one, distributing complete files (not file chunks) across different filesystems according to a defined policy.

The downside? Write performance isn’t as good as RAID0. But if one disk fails, you only lose data stored on that specific disk, not everything. (Though honestly, having half your files left might not be very useful…) Plus, no formatting required—you can create a UnionFS on existing drives and keep original data.

Setup steps:

  1. Partition and format the USB drive and SD card (preferably to ext4). Plug them in, then mount the partitions under Storage → File Systems.
  2. Go to Storage → Union Filesystems → Add. Select all mounted partitions, give it a name, choose a distribution policy (see this forum thread for details), and finish setup. You now have a new merged filesystem—effectively combining two small drives into one larger virtual one.
  3. Tested read/write speeds—both were roughly on par with single-drive performance.

unionfs setupunionfs setup

The merged filesystem will be mounted under /srv.

0x03 Setting Up SMB

  1. In the left menu, go to Shared Folders → Add to create a shared folder and set permissions.
  2. In the SMB menu, enable SMB service and add the shared folder.
  3. In the Users menu, create a user and add them to the sambashare group. This user can now access the Samba share.

Pitfall: FTP defaults to Chinese character encoding issues, and fixing it isn’t straightforward—so I just went with SMB instead.

0x04 Installing KodExplorer (KodCloud)

OMV doesn’t come with built-in cloud suite apps like Synology. Using only SMB is limiting. To make it feel more like a real NAS and easier to use, I installed a private cloud service.

Nextcloud is resource-heavy. Seafile doesn’t allow direct SMB access to files. Eventually settled on KodExplorer (KodCloud), which is relatively lightweight and user-friendly for Chinese users. The web interface works fine, and the mobile app is convenient too.

Installation steps:

  1. Download the source code from the official site, extract to /var/www/kod.

  2. Add Nginx configuration: create a config file under /etc/nginx/sites-enabled/. You can copy the OMV default config and modify it. Below is my configuration for reference:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    server {
    server_name kod;
    root /var/www/kod;
    index index.php;
    sendfile on;

    error_log /var/log/nginx/kod.log error;
    access_log /var/log/nginx/kod.log combined;

    location ~ \.php(.*)$ {
    fastcgi_pass unix:/run/php/php7.3-fpm-openmediavault-webgui.sock;
    fastcgi_index index.php;

    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;

    include fastcgi.conf;
    }
    listen [::]:8080 default_server ipv6only=off;
    }

  3. Additional optimizations: Refer to the KodCloud documentation.

Minor drawback: The 32-bit PHP environment limits KodCloud to files under 2GB. Larger files must be handled via SMB.

0x05 Remote Download

Although KodCloud has built-in offline download features, the 32-bit version on Wanku Cloud struggles with files over 2GB…

So I set up aria2 for remote downloads instead.

Configuration is simple—just install the downloader plugin from the OMV WebUI plugins menu. You can then control downloads directly from the OMV interface.

0x06 Rclone Backup

A NAS isn’t complete without backup. I plan to back up directly to OneDrive.

There are 5TB international OneDrive accounts on Taobao for just 3–4 RMB. (Yeah, they might get banned one day…)

Side note: You can use mover.io to copy data between OneDrive accounts—effectively backing up across accounts and greatly reducing the risk of total data loss.

Rclone setup is well-documented online (e.g., this guide), so I won’t go into detail.

Once Rclone is configured, just add a cron job to sync local directories to OneDrive every night at midnight.

0x07 Installing Docker & Portainer

For easier future software deployment.

Just go to the OMV-Extras section in the OMV WebUI and install Docker with one click.

Highly recommend switching to a domestic mirror for faster pulls—Aliyun Docker Mirror works great.

Connect via SSH to switch the mirror first, then use the WebUI to install Portainer—it’ll be much faster.

0x08 Installing Cockpit

Also available as a one-click install in OMV-Extras.

Cockpit lets you monitor server status via a web interface, and includes a built-in web terminal for easy SSH access.

That said, OMV’s built-in System Info tab already shows basic stats. You can skip Cockpit if you don’t need it.

Alternatively, Netdata is great too—can be deployed in Docker and provides even more detailed monitoring.

0x09 Setting Up a Dashboard Page

To make accessing all services easier, I set up a simple dashboard.

Based on the services deployed above, here’s a template HTML file. Feel free to search for other dashboard templates online.

ResultResult

Nginx setup is just a basic static HTTP server—same as setting up KodCloud. No need to repeat.

0x0A Summary

All in all, this was just a small experiment.

But man, it was full of bumps and detours QAQ.

Reinstalled the OS multiple times: First time used Ubuntu, second time messed up the dtb file trying to fix USB and couldn’t boot, third time installed some weird Docker WebDAV image that overwrote root directory permissions—including sudo access, so I couldn’t even SSH in… Took this Wanku Cloud apart and reassembled it at least ten times.

Spent ages debating: Nextcloud vs KodBox, FTP vs SMB vs WebDAV, Netdata vs Cockpit…

Total setup time? Probably over 10 hours.

Looking back now:

If you just want a NAS, setting up a OneIndex on Cloudflare could achieve similar results—maybe even more stable, and network speed won’t be much better anyway (thanks to Wanku Cloud’s USB 2.0 ports…).

If you need a general-purpose Linux server, just install Debian and Docker—done.

Still, the process taught me a lot about Linux, built up valuable experience, and gave me hands-on NAS configuration practice.

Consider this a warm-up experiment for my All-in-One project~

(And for the next few months before my college entrance exams, this little box will have to hold me over…)

This article is licensed under the CC BY-NC-SA 4.0 license.

Author: lyc8503, Article link: https://blog.lyc8503.net/en/post/wanke-nas/
If this article was helpful or interesting to you, consider buy me a coffee¬_¬
Feel free to comment in English below o/