Meet Pydio: An Open Source Dropbox

Pydio is the mature open source alternative to DropBox and Box, for the enterprise.

Nowadays, everyone needs to access documents across multiple devices and share documents, files and folders with other contacts and teams. Pydio formerly knows as AjaXplorer, is an open source application that can be used to setup fileserver on any system.

I found Pydio available in four different version:

      1. Ultimate Edition
      2. Enterprise Edition
      3. Pro Edition
      4. Community Edition

We will focus on community edition which is free for personal use. You can install Pydio as a mobile application in your iOS or Android mobile device. It also has an embedded WebDAV server. With Pydio, you can access files and folders from any system or browser over WAN and LAN.

How To Install Pydio in CentOS

Pydio works in all web servers including Apache, Lighttpd, IIS and Nginx. I prefer using Apache and that is also recommended by Pydio team if you want to use Pydio for production.

Hardware requirements can change varying on your number of users and volume of documents. Any system with a 2GHz dual-core with 4GB of RAM covers Pydio for normal needs. When I say normal needs, I mean an environment up to 50 users.

Before we install Pydio firstly we need to install LAMP Server (Apache, MariaDB, PHP) on CentOS. After we install LAMP Stack, we need to install some prerequisites needed by Pydio. Check the commands below to get them.

yum install epel-release
yum install php-apc php-mbstring php-pecl-apc php-mysql php-cli php-devel php-gd php-ldap php-pecl-memcache php-pspell php-snmp php-xmlrpc php-xml php-imap php-mcrypt* wget unzip

After you run the code above, you need to edit the php.ini file.

vi /etc/php.ini

Then, in the following lines, make changes as shown in the code:


[...]
upload_max_filesize= 1024M

[...]
post_max_size = 1024M

[...]
output_buffering = Off

[...]

Then, you should save and close the file.

Now you need to login to the database server:

mysql -u root -p

The next step is to create database and user for Pydio. Th name of database will be pydiodb and the name of user will be pydiouser.


Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database pydiodb;
Query OK, 1 row affected (0.05 sec)

MariaDB [(none)]> GRANT ALL ON pydiodb.* TO pydiouser@localhost IDENTIFIED BY 'centos';
Query OK, 0 rows affected (0.08 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.04 sec)

MariaDB [(none)]> exit
Bye

Now let’s get Pydio from its website, extract it and move the contents to your web root directory.

unzip pydio-core-6.0.8.zip
mv pydio-core-6.0.8/ /var/www/html/pydio

Then you must run chmod command to give data folder full permission.

chmod -R 777 /var/www/html/pydio/data/

Then edit /etc/httpd/conf//httpd.conf

vi /etc/httpd/conf/httpd.conf

Find the line AllowOverride None and change it to AllowOverride All.

Before you close the file, make sure you have saved it. This commands make possible to reduce the complexity by disabling SELinux (Security-Enhanced Linux) and avoid “403 forbidden error”.

setsebool -P httpd_enable_homedirs true
chcon -R -t httpd_sys_content_t /var/www/html/pydio/

Now restart the apache server.

systemctl restart httpd

Now comes the final step, to start Pydio web installation.

You should open the browser and type http://ip-address/pydio

After the Pydio Diagnostic Tool shows in the screen, click click here to continue to Pydio. Then click Start Wizard!.

Then setup your admin account in the screen you see. After that, you should set the default language and file server title. When you complete this tab, you should redirected to MySQL configuration. Enter MySQL database and user details and click “try connecting to database”. If everything goes well, you should see “Connection established” in the bottom.

Connection Established

It’s time to create a new user at Add some users section.
After this step you should see the following screen:

Pydio Install

Copy the contents shown in blue in the above window and paste them at this file: /var/www/html/pydio.htaccess

vi /var/www/html/pydio/.htaccess

The file should look like this:

Pydio Configuration

Now refresh the page and that’s it. Voila!

Pydio

  • What is the license it is released under, as their core library does not mention which license it uses. Also the setup above for 1G files should only ever be used in a local trusted environment, if you put that on the web people will take down your install most likely using long-running attacks.

    “Any system with a 2GHz dual-core with 4GB of RAM covers Pydio for normal needs. When I say normal needs, I mean an environment up to 50 users.”

    Also 50 users is tiny, what r/sec can it push?

    • David G

      It’s AGPL