This is the first post in the “Build Your Own Cloud” series (BYOC) of guides. Each BYOC post will help you build the foundation of your own personal, private cloud. Today I’m setting my sights on Pydio. Pydio is an Open Source platform that mimics the functionality of Dropbox. There are a few Open Source Dropbox-clones out there, including OwnCloud, which I’ve written about in the past. Pydio is definitely more visually aesthetic than OwnCloud, and quite possibly even Dropbox. It’s also packed full of features. Some of Pydio’s key features include the following.
- File Sharing – Web UI, Desktop Sync Client, & Mobile Apps
- Web Access – Drag and drop files from your desktop, view & edit files online
- Mobile Access – Native Android and iOS apps for phones and tablets
- Flexible Backend Storage – Works with AWS, OpenStack, Samba, FTP, and even Dropbox
- Directory Authentication – Will authenticate against LDAP, Active Directory, WordPress, Drupal, Google, and more
- Very Secure – Supports Encryption as well as File & Folder ACLs
- Compatible Platform – PHP-based & runs on LAMP or Windows IIS
It’s powerful enough to do everything Dropbox does, but you maintain control of your own data and personal information. You don’t have to pay a monthly fee to get large amounts of storage for you, or your company or even your family. Let’s get started.
Installing Pydio on Ubuntu 14.04
I’m installing Pydio on a virtual machine running Ubuntu 14.04, minimal server installation, with OpenSSH server running. First things first, let’s make sure everything is updated and upgraded.
# sudo apt-get -y update # sudo apt-get -y upgrade
We need to add the debian package sources for Pydio to sources.list.
# sudo nano /etc/apt/sources.list
Scroll down to the bottom and add these two lines.
deb http://dl.ajaxplorer.info/repos/apt stable main deb-src http://dl.ajaxplorer.info/repos/apt stable main
Save and exit (CTRL-X, Y, Enter). Now, lets install the public key.
sudo wget -O - http://dl.ajaxplorer.info/repos/[email protected] | sudo apt-key add -
Go ahead and run another update.
# sudo apt-get -y update
Let’s install Pydio now. By default, the standard LAP pack will be installed. Apache & PHP. We will install MySQL in a few minutes.
# sudo apt-get -y install pydio
For some reason, /usr/share/pydio isn’t owned by www-data by default. We need to change that.
# sudo chown -R www-data:www-data /usr/share/pydio/
There is a sample configuration file for Apache that is included with Pydio. For our purpose, it’s perfect so we’ll copy it over.
# sudo cp /usr/share/doc/pydio/apache2.sample.conf /etc/apache2/sites-enabled/00-pydio.conf
In order to use the the security features in Pydio, we need to enable the mcrypt PHP module.
# php5enmod mcrypt
Now we need to install MySQL database server. SQLi is also supported, however I have never used it so YMMV.
# sudo apt-get -y install mysql-server php5-mysql
You will be prompted to set a root password for MySQL. Be sure to choose a secure password, and remember it. We’ll need it in a minute.
After the installation is finished, we need to create a database for Pydio. To do this, open the MySQL CLI.
# mysql -u root -p
Enter the root password you selected during the MySQL installation. Then, create a new database called pydio and assign the proper permissions. Replace ‘password’ with a password for the pydiouser. Afterwards, flush and exit.
mysql> create database pydio; mysql> grant all on pydio.* to 'pydiouser'@'localhost' identified by 'password'; mysql> FLUSH PRIVILEGES; mysql> exit
# sudo service apache2 restart
We have finished the Pydio installation. Now we just need to run through the web-based setup. Open a web browser and point it to http://
You will probably see a few “WARNING” messages, which is OK. If you are seeing any “ERROR” then you need to address the issue before you can proceed. If you don’t see any errors, then click the link that says “click here to continue to Pydio.”
Now, select “Start Wizard.”
There are two categories you need to take care of. Admin access and Configurations storage. So, go ahead and click on Admin access.
Create a user and password for the admin user. Next, click on Configurations storage. For Storage Type, select Database. You need to insert the username “pydiouser” in the user field, and the password you chose when we create the database within the MySQL CLI earlier. The other fields defaults are fine. Click on “Try connecting to the database” and you should see a green bar show at the bottom saying the connection was successful.
Now you can click on “Install Pydio Now.”
It will take a few seconds, then you’ll be presented with the Pydio login screen. Log in with the admin username and password you just created in the wizard.
Click on “My Files” and you will see your Pydio dashboard, ready for you to drag and drop some files.
That’s all there is to it! If you are going to allow access to the server from the Internet, I highly recommend configuring SSL / HTTPS so all of your data in transport is encrypted. I will create a guide for that soon. If you have any questions, please feel free to post them in the comments below and I’ll do my best to help. Thanks!