How to install Seafile on Ubuntu 14.04 (Trusty Tahr)

Seafile is a OpenSource cloud storage software. It offers file sharing and syncing for individual users and groups, it provides client side encryption and easy access from mobile devices. This tutorial describes the steps to install Seafile on Ubuntu 14.04.

Installing the Seafile dependencies

List of dependencies as described

  • Java Runtime Environment (JRE)
  • Poppler-utils
  • Libreoffice 4.1+ and Python-uno    
  • libpython 2.7
  • Python libraries (make sure python 2.7 is included in this installation, you may verify using the command on the image 1.2, if its already installed, if not then use this command apt-get install python 2.7 and also if you receive an error of "Wheel installs require setuptools >= ...", then you may use this pip install setuptools --no-use-wheel --upgrade). You also need, to install using easy_install pip and pip install boto as seen on the image 1.3 and 1.4 respectively)

Run the following command as root user to install the required software:

apt-get install openjdk-7-jre poppler-utils libreoffice libreoffice-script-provider-python libpython2.7 python-pip mysql-server python-setuptools python-imaging python-mysqldb python-memcache

Now I will check if the installed python version matches the requirements for Seafile:

python -V

As you see in the screenshot, the python version is 2.7.6, so it is in the range of supported python versions.

Next I will install the pip package with easy_install

easy_install pip

and the boto package

pip install boto

Next install some additional fonts for your language (like example WenQuanYi, if we gonna use chinese)

apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy

Installing Seafile with MySQL

First you need to verify the if your system is a 32 bit or 64 bit system.

uname -m

My sever is a 64Bit system.

There are two choices to use on, either 32 or 64 bit, which are both available on the Seafile download page

Or you may directly download on these given listed sites:

64 bit:

32 bit:

By downloading the package, you need to use wget command:

cd /tmp

The next is, were gonna create the required directories.

First, I need to create a directory name "guide"(this is just a sample in image 1.8), and you may use any name that describes your organization.

mkdir /root/guide

Then move the file seafile-server_4.0.6_x86-64.tar.gz to a directory that we have created guide.

mv seafile-server_4.0.6_x86-64.tar.gz /root/guide/

Enter the guide directory

cd /root/guide

Once your are inside, you need to extract the file, using the command tar.

tar -xzf seafile-server_4.0.6_x86-64.tar.gz

Next create a directory installed .

mkdir installed

We may move the file seafile-server_4.0.6_x86-64.tar.gz to newly created directory installed.

mv seafile-server_4.0.6_x86-64.tar.gz installed/

As described on this directory structure for our version, everything should be in right place. Where Installed and seafile-server-4.0.6 directories, should be within the directory of Guide.

Configuring the MySQL databases

Seafile consist of 3 core components. We need to create a database for this given components.

  • ccnet server
  • seafile server
  • seahub

Were now creating the mysql databases, account and setting permission on given databases as listed. (this is just an example you may create your own design on your database name).

Seafile Components Database name Account
ccnet server ccnet-db seafile
seafile server seafile-db seafile
seahub seahub-db seafile

Login to mysql as root user

mysql -u root -p

and then issue these commands in the mysql shell:

create database `ccnet-db`character set = 'utf8';
create database `seafile-db`character set = 'utf8';
create database `seahub-db`character set = 'utf8';
create user 'seafile'@'localhost' identified by 'seafile';
GRANT ALL PRIVELIGES ON ccnet-db.* to `seafile`@localhost;
GRANT ALL PRIVELIGES ON seafile-db.* to `seafile`@localhost;
GRANT ALL PRIVELIGES ON seahub-db.* to `seafile`@localhost;

Now were finish on creating databases, our next is configure seafile to point on these databases that we have created.

Setting Up Seafile Server

Required Packages:

  • python 2.7
  • python-setuptools
  • python-imaging
  • python-mysqldb

By using this command: (to verify if its already installed)

apt-get install python2.7 python-setuptools python-imaging python-mysqldb

Next is you need to install the seafile server. Go to directory seafile-server-4.0.6 then run the script

cd seafile-server-4.0.6
ls -lrt

You need to complete the questions on this next procedure.

Starting Seafile Server

On starting service seafile, you need to go to directory seafile-server-4.0.6. then run as given on image.

cd /root/guide/seafile-server-4.0.6
ls -al
./ start

Then on starting seahub. the default port is 8000.

./ start

To access the site using any browser you have, enter in address bar.

On this image you will see the sample web access. Using the admin account you have entered in Image 1.22, you need to enter the Email and Password.

Once you login, you will see seafile web admin page.

Share this page:

Suggested articles

8 Comment(s)

Add comment


By: Martin

Great alternative for storage solution.


By: Martin Beaudet

Hi, this tuto is simply perfect. Only one question. Can you explaint how step by step configure the https instead of http.  I had problems with https and ubuntu 14.04 only. Thank you for your help and continous your great work. Martin B.

By: Arjen


When i try grand all priveliges on the databases with the command: GRANT ALL PRIVELIGES ON `ccnet-db`.* to `seafile`@localhost;I get as respond: 


ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PRIVELIGES ON `ccnet-db`.* to `seafile`@localhost' at line 1

Please help.


By: AJ

The default installation is not secure like this.  You should setup NGINX as forced HTTPS reverse proxy and run Seahub in FastCGI mode instead. It's a bit dated but at you can see how. Or cherry pick the necessarry config for Ubuntu Trusty from the installer here

By: mario

Junge Junge Junge.. 

du hast geschrieben: 

GRANT ALL PRIVELIGES ON ccnet-db.* to `seafile`@localhost;

GRANT ALL PRIVELIGES ON seafile-db.* to `seafile`@localhost;

GRANT ALL PRIVELIGES ON seahub-db.* to `seafile`@localhost;

Es heißt aber:

GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`; GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`; GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;



By: Me

Hi! Thanks for your post! Helpfull.

By: Curtis

Why would you put this /root?  That makes no sense to me at all from a security standpoint.

By: trebolscout

how can i start the seafile and seahub script at boot up for this installation?