Working NAS server with Seafile (and ownCloud)

5 9321
Hi all!

Tonight I finally had my server working! It has been quite an experience learning about Linux and related software.

I started with a BanaNAS image, hoping to use OpenMediaVault for my needs, but I've been using it less and less and have done almost everything without it. I'm thinking of starting from scratch using Bananian. I ran into a LOT of problems, some related with the Banana Pi, most concerning Linux software and Linux itself.

My current setup includes Owncloud 7 running with MySQL and Nginx, and Seafile 3.1.7, also running with MySQL (currently using their internal web server, but can also use Nginx)

Storage is at this moment a 16Gb USB pen drive (Sandisk Cruze). After the testing phase ends, I plan on using an external 250Gb 2,5" HDD on the SATA port.
Power comes from a dual USB power adapter supposedly rated at 2A (but I doubt it has that much :-P )

My network is 100Mbps (also 100Mbps via FTTH service) but file transfers, even between PCs running side by side, is a bit less than 3MB/s. Same as to the Pi via Samba. Speedtest (CLI version) reports 8.xMbps download and 21Mbps upload (weird).

Concerning the NAS software, I should mention I was after some Dropbox experience, something I could use to share and synchronize files between my home PC, my work PC, and Android phone and tablet.
I first started with owncloud, but after I got it working 2 days ago, I remembered how slow this was. After browsing a bit through their forum, I found someone mentioning Seafile and decided to test it. I'm glad I did! :-D

Speed is just one of the ways Seafile is WAY better. Installation is also much smoother, less complicated, and works better without unexpected errors.

Tonight I tested both services by copying a file directory with 625 files / 256Mb with both medium sized (2-3Mb MP3) and small files (50-100Kb). I was astonished with how fast Seafile worked. In just over 3 minutes (~3:12) it copied everything! Note this time includes copying the data to the Seafile synchronization directory. Deleting took less than 10 seconds.
  Owncloud took more than 18 minutes (18:35) to copy everything to the server. And, due to the way deletion works (an internal copy is made to a trashbin folder), deletion took over 24 minutes. At least I stopped counting at this point, when there were still 200 files to be "deleted". It also gives some errors on the client application (Windows 7) about some missing files. Yes, the files I had just deleted on Windows!! So, I don't have much confidence on this thing.

Owncloud is very picky about network configuration and permissions (file and network). The initial wizard also runs as a web page, so you must have everything well configured already for it to run.
Seafile's documentation is easier to follow, mentions all necessary pre-requisites and how to obtain them and then we run a wizard on the command line and...that's it! It takes care of MySQL, and also includes an internal web browser, so you get started much faster. I ran into some problems because I forgot to open the necessary ports on the router (it uses 4 of them, though I think only 2 are required to be opened on the router) and the manual doesn't mention it, or at least not on the part I read. But I haven't read much because it's working already :-) The installation can be fine tuned of course. You can use SQLite instead of MySQL, and the manual covers using "proper" webservers (Apache and Nginx).
There are clients for Windows and Android, and everything appears to run smoothly without any unexpected strange errors as with Owncloud.

Owncloud does have more features, plugins, etc. Seafile is much more like a common Dropbox, Onedrive, Google Drive, sort of thing. And that is enough for me.

Future plans: besides plugging in a proper HDD, I'd like to have Bluetooth working (currently it works for a few minutes only), and get composite video out in color, without overscan. Usually I'll connect to it via SSH but in case I need, I want composite video since where it will be installed, I only have an old CRT TV.

That's it! :-)
Edited by tkaiser at Fri Nov 21, 2014 01:15

If you want to learn two other lessons...?

You should always measure both network and local storage individually before you start measuring application performance (that means: Using eg. iperf between Banana Pi and your Windows machine and using eg. iozone to measure the USB pen drive especially with different block sizes that match your applications).

When using a server software that will be accessible directly over the internet (port forwarding) always check its security footprint: Owncloud for example is such a mess that it has it's own page at 'CVE details': ... tml?vendor_id=11929

Didn't knew about iperf. Had a look and seems interesting. I'll give it a try one of these days!

In any case, since the infrastructure was the same for both softwares, all being equal, the difference would be due to their specific performance. And it's a known fact that ownCloud's performance sucks a bit (, for example, there are others). Then pen drive is a non-issue as it's just a temporary testing storage support. No need to waste time there...

Concerning security, on that site there's no Seafile data, or at least I didn't find it. However, this is only for private use, sits behind a router and I just open the necessary ports for it to function so there's not much I can do here. If the performance difference wasn't so impressive, it may have been worth analysing this further, but it's not the case, so the decision is made

I however, found a problem with the Seafile Windows client today: it doesn't seem to work behind my company's proxy. It doesn't support any proxy configuration. I installed a tool that was supposed to allow this, ProxyCap, but haven't yet manage to get this to take off. I hope to have this fixed until the end of the day ;)

Fixed! ProxyCap was set with an HTTP proxy and apparently ours is an HTTPS proxy :-)

can you explain how you did it? which OS have you used ? thanks

Artic replied at Wed Feb 25, 2015 13:23
can you explain how you did it? which OS have you used ? thanks

Oops, haven't come here in a while, a lot has changed on the Seafile project, for the better! :-D

Currently the server is running version 4.0.6, which now supports thumbnails for photos on the web pages. And their size can be configured to suit your taste.

On the client side, a lot of improvements have been made to the Windows client (I'm running Windows 7). It now supports HTTP proxies, no need for third party "proxifiers", Windows integration is a lot better (you can get a share link directly from a context menu in Windows Explorer), the client window is now resizeable, etc, etc.

So, it keeps getting better with time. I've had no issues at all and performance is great! Still, there are improvements to be made (tray icons could be improved), but the basic stuff is done well :-)

Concerning the rest... my Banana Pi is running fine with a 250Gb SATA 2,5" HDD, and besides Seafile and OpenMediaVault (almost useless now), it's also running eXtplorer (remote file management), Shell In A Box (web SSH, to bypass the office proxy) and Deluge (torrent client) though I installed also Transmission for testing since I have some issues with Deluge when I try to download a bunch of torrents at the same time. Still, works fine most of the time and frees my main PC from having to be turned on at those times :-)

You have to log in before you can reply Login | Sign Up

Points Rules