Skip to main content

Seafile, a self-hosted Dropbox alternative

Seafile is an open-source alternative to Cloud drive services like Dropbox, OneDrive (formerly Skydrive), Google Drive, etc. However those services often require you to accept their terms and conditions in order to authorize the provider to access your private data… which is why I prefer to host my own solution. Remember when a product is free, it is often because YOU are the product… It is never too late to take control back of your privacy and you can build & manage your own Dropbox-like solution thanks to Seafile !

The desktop client is light and the interface simple. It displays the list of librairies (owned by you or shared by another user), synchonize it automatically and that’s pretty much it. You cannot do much with the client appart from synching libraires which keeps the client easy to use. The advanced features like versioning, sharing, etc are available from Seafile’s server UI. The desktop client is available on Windows, Mac OS X and Linux and there is also a mobile app available on iOS and Android. I have only tested the iOS one which is fine but some users may find annoying the lack of offline synchronization.

Seafile desktop clientIf you feel like testing Seafile before setting up your own server (which is not really complicated) you can always try their free offer here. You can also stay with me a little bit more to get through an overview of Seafile server.

I host my Seafile instance on a dedicated server running on an Intel Atom N2800, 2GB of RAM and a 500 GB hard drive. Its footprint is really small and only consumes a few MB of RAM. You can even host it on a Raspberry Pi as they have a specific package for it. Compressing large file with Seafile is the only CPU-intensive operation I noticed. It took a few minutes on my server to compress a 1 GB file which is acceptable given it relies on a low consumption CPU meant for mobile usage (Intel Atom).

Seafile server’s UI is great. It is simple, minimal and reactive. There is no fancy or useless features and it is easy to understand. After logging in, you will land on the homepage displaying your librairies:

Seafile server

You can notice a small lock under “My secured library” – that’s because it is encrypted. You need the passphrase to open it which is different from your seafile’s password. The data is encrypted on the server side so if someone hacks your server, he won’t be able to access your files easily.

Browsing a librairy is simple, just click on it and the content will be displayed. It is possible to keep an history of the modifications and customize the retention period for each library. If you want to restore a previous version of a file, just click retore and Seafile will list all the versions available:

Seafile file historyOn top of that Seafile’s developpers use an algorithm called Content Defined Chunking to improve storage efficiency. It means activating history on a library may not increase significantly the storage consumed. Even better, I noticed my users are storing a total of 51 GB of data but Seafile uses around 46 GB on my server thanks to their deduplication mechanism.

It is possible to share a library, folders or files with users or groups of users registered on your Seafile server. You can also generate a public link so they can download or upload files without registering. It is a great way to quickly share files with friends who don’t have an account on your server.

I am not going to go through every feature as I have presented the one that are the most usefull to me but Seafile has a lot more to offer. I think a great tool to collaborate (I wish my company was using it…), it is lightwieght, simple and reliable. The development around Seafile is very active and the team brought great enhancements to their product over the last year. They made a great work to keep it simple and full of those little features that make your life easier. They also did a very good job with the documentation and you can find a lot of details on their website. Install Seafile server, create virtualhost for Nginx / Apache, enable https, configure your firewall, tweaking server conf… everything is explained step by step in the manual. If you feel like trying it, just keep reading and follow the tutorial below !


This tutorial has been created for Debian Wheezy but should work on most Linux distributions.
1) Install dependencies (as root)

2) Create a user for Seafile, download and install it

Visit to get the link to the latest version.

Follow the instructions of the install script to complete setup.

3) Start Seafile server:

You will be asked to create an admin account.

You can now access Seafile by browsing to http://your-server-ip:8000.


Virtualhost configuration

If you prefer to configure a reverse proxy (Apache or Nginx) to access Seafile using a domain name and a SSL connexion, follow the instructions below (don’t forget to replace with your domain).

1) Generate self-signed certificates
2) Configure your domain under Seafile (as seafile user)

Edit /home/seafile/ccnet/ccnet.conf and modify the value of SERVICE_URL as below (replace with your domain)

Then edit /home/seafile/ and add the line below (replace with your domain):

Finally, restart Seafile and enable fastcgi

3) NGINX configuration

Create a virtualhost (e.g. under /etc/nginx/sites-enabled/, copy the following content (replace with your domain), restart Nginx and that’s it !

3-bis) Apache configuration

If you prefer to use Apache instead of Nginx, follow the instructions below. Install dependencies (as root)

Enable mod_rewrite, mod_fastcgi, apache proxy and ssl.

Enable fastcgi in Apache config file under /etc/apache2/apache2.conf:

This is valid for Apache 2.2. If you are using a different version, please consult Seafile manual for configuration. Create a virtualhost (e.g. under /etc/apache2/sites-enabled/, copy the following content (replace with your domain), restart Apache and that’s it !

Monitor your server through a web based dashboard – ESM

Monitoring a server is obviously an important duty to any sys-admin or more generally, anyone having its own server (Selfhosted or not). Several tools exists to do it, like the popular “top” command (for processes, CPU usage, etc..) or “free” command to know the available ram, or “iftop” for bandwidth usage, etc… Most probably you will prefer to have all these info consolidated into a simple graphs accessible through a web interface, similar to Monitorix, Munin that I’ve already detailed in previous postss, or more like a realtime data dashboard similar to Scout Realtime.

In this latest category, I’ve found a new lightweight and simple dashboard for Linux servers called eZ Server Monitoring (eSM), with 2 versions (Web based and command line based)


ezserver monitor dashboard screenshot

Written in PHP and released under GPL licence, eSM displays on a single Web page information such as the operating system, the number of logged on users and system load, CPU, RAM, disk space available, bandwidth usage and especially the port monitoring services such as FTP, SMTP, Web, etc …


Interested to use it? The installation is very straightforward:


1) Create a dedicated folder in your /var/www (let’s call it esm)

In root, simply run:

2) Download the latest archive (V2.0 as of today) and unzip it

If you don’t have unzip command, simply install the package:

3) Clean a bit the directory of have all the files at the root of the folder

Well and that’s all, you can now directly point to HTTP://YourIP/esm to get access to the dashboard.


Optional configuration

As written in the documentation,  eZ Server Monitoring Web works out of the box but further modification to the code can be made to better suit your needs by simply editing the file esm.config.json.

Here are few examples:

1) Modify the websites to ping

Simply find and modify the lines:

2) Service monitoring

If you want to monitor a service running on a special port (FTP, SSH, Deluge torrent, etc…), simply find and modify:


Virtualhost configuration

If you wish to access to eSM Web interface through a dedicated sub domain or domain name like esm.domain.tld, you can create a virtualhost to do so.

You will need to:

1) Create a A redirection in your DNS server/registrar from esm.domain.tld to your IP

2) Have SSL certificate ready. If not you can read this tutorial. (Optional, but why not!)

3) Create your virtualhost as following:

In /etc/apache2/sites-enabled/, create a file called esm (In root):

and paste/adapt the following content:

Adapt the content (Servername, webmaster, SSL certificate and directory, …).

When done, save the file (CTRL+X then Yes) and reload apache: (In root)

You should now have access in HTTPS to your eSM using esm.domain.tld URL.

And voila!!

Personal cloud to host yourself – Cozy Cloud

cozycloud logoYesterday I have briefly presented YunoHost, an all in one server OS that preinstall and configures various applications (webserver, mail, …) and allow you in 1 click to install additional software (Transmission, Tiny Tiny RSS, etc…). Yunohost is clearly a project I follow and like, but today I received an important news from a similar project, more popular actually, called Cozy Cloud.

Cozy is a platform to either host yourself or use 3rd party vendor, that consolidate all your web services (Mail, Agenda, Torrent, RSS, file sharings, …) in the same private space. It’s like a personal cloud where you can easily install and manage your applications.

A demo can be found here.

CozyCloud screenshot home menu


Although I’m not fan of their design (Especially the icons and the Owncloud style ribbon), I prefer Yunohost there, but they have a much richer set of application and are more active/communicate better.

Their ambition are also very clear as they want to  “be the center of gravity of your digital life. Through it, all your devices and sensors will collaborate together for you and your contacts.”

Here again, CozyCloud is based on free software and the code is also available on Github.


Big news from them today, they have successfully raised $1m “to change the world of personal data” from a big French fund called Innovacom and from a business angel club named Seed4Soft composed of top French Entrepreneurs from the IT Business (Exalead, RunMyProcess, OODrive, etc…). This will help them to accelerate the development of their project by growing their team and will enable them to build new offers with some partners.

It’s quite a lot of money from such small project, but competing with Google, Amazon, Facebook, etc…even for 1% of the cake need considerable investment from hardware (3rd party) and software (CozyCloud).

You can read the full announcement on this exceptional news, on their blog.

Have you tried it? What do you think of this project and its direction?

List of alternatives to Google and co for your own server

search engine logoGoogle Search having probably more than 70% market share followed by Bing and Yahoo, Google tends to be unavoidable….but it exists quite a lot of robust alternatives and I wanted to share some of them here.


Obvisouly DuckDuckGo have become quite popular after all the revelation about PRISM, NSA surveillance, etc….. and after testing it for several weeks, I’m quite happy with it, although its was tough to change my habits and I even felt the relevancy of answers was not so good as I was used to the “selected” (Called it restricted) contents from Google (based on my previous history). But actually I’m now very happy  to see the web from a fresh eye!

If you’re not a big fan of DuckDuckGo, I recommend you to give a try to Ixquick or StartPage. (Many more exists tho)

But hey, this is a blog on self hosting or managing your own server…DuckDuckGo is great, but how about having my own search engine?

Basically, you can have 2 types of search engine:

1) The Meta search engine, using the indexes of others search engine (They crawl the web and the meta search engine will use their database to deliver you the content).

It’s usually a light application with a good accuracy (Large number of indexed websites, usually from Google, Yahoo or Bing). Hence you got most of the web under a single click with some added features (Compared to google, etc..) such as privacy or even collaborative. However, you fully rely on the 3rd party databases. If Google remove a website from its database, then you cannot see it.

2) The “real” search engine, clearly like Google and co. Meaning you will need to crawl the web and index it before doing a search. The benefits are a total censorship-free, independence and privacy, however as you can expect, crawling the web is a long job and you won’t be able to compete with Google’s billions of pages indexed and million servers….

Actually, expect for intranet or if you want to have your own search engine restricted in few websites that you can crawl by yourself, I don’t see much reasonable alternatives except the great Yacy (Peer to Peer search engine) that I will detail (and write a tutorial) later.

Here is the list of meta/search engines that worth a try:

1) Meta Search Engine

Searx, opensource meta search engine protecting your privacy with parallel query for faster response, Duckduckgo like !bang functionality with engine shortcuts and many more.

Seeks, opensource collaborative distributed (p2p) search engine that ranks results by social consensus (filter)

MySearch, opensource simple meta search engine (Minimalist design) and respecting your privacy.

2) Search Engine

Yacy, decentralized and censorship free, Yacy allow you to crawl your part of the internet and share your index on p2p. The more people running a node, the faster and more complete it become. (My favourite Search Engine!)


Well, I have to say I didn’t find many still maintained search engines so far, but I’ll continue to look for. if you know any other good ones, please share them on the comment section!


google search engine question why

OpenSource & minimalist RSS Reader – Miniflux

Following my 2 previous short tutorials on how to install Selfoss RSS Reader and Sismic RSS Reader, here is my 3rd RSS reader testing and installation.

Today, I’ll focus on the open source and minimalist RSS Reader Miniflux.

Optimized for readability (Clean, white design with the focus on content), it will download the full content directly even though the feed only display the summary and will remove the trackers and ads. Without any fancy features but with efficient keyboard shortcuts, Miniflux is very easy to install and require few dependencies.

Miniflux - RSS ReaderMiniflux - Example feed

Developed as a Single User authentication, you can actually easily make it multi-user by creating new SQLite from the admin interface.

Indeed, to install Miniflux, you will need Apache + PHP (>5.3.7) + SQLite, nothing more.



1) Most probably you already have Apache with PHP, but may be not SQLite.

To install it, simply run:

2) Create a dedicated folder to download and extract the latest Miniflux version (1.1.3 as of date of this post)

Run (as root user, or add sudo at the beginning)

3) Change the owner of the folder to ensure apache web user can access

4) Set up a cron job for regular update

Let’s say you want to update your feeds every 15mn, you can set up a cron job as following

and at the end of the file, copy/paste

Save (CTRL+X, then Yes)

and well…that’s all for a first access…

You can go to http://YourIP/miniflux and log in using admin/admin credentials.

Don’t forget to change this password in the options.


Virtualhost configuration

Now you got your RSS reader working and you want to access it from rss.domain.tld or directly from mywebmail.tld, instead of using the IP/miniflux link, you will need to set up a virtualhost. And you could force HTTPS connection.

You will need to:

1) Create a A redirection in your DNS server/registrar

2) Have SSL certificate ready. If not you can read this tutorial.

3) Create your virtualhost as following:

In /etc/apache2/sites-enabled/, create a file called miniflux (In root):

and paste the following content:

Adapt the content (Servername, webmaster, SSL certificate and directory, …).

Note that to improve the security/privacy of your instance, you need to deny access to the data folder (Where is store the SQLite database for example). The last part of the shared virtualhost is made for that.

When done, save the file (CTRL+X then Yes) and reload apache: (In root)


You should now have a working Miniflux RSS Reader. For more information, I suggest you read the official document on Github.