Use Your VPS As Your Own DropBox With Seafile
Cloud-based file sharing tools have become very popular. They provide a helpful way to share files with friends or as an automatic backup for files to allow easy synchronization between your devices. However, there are a number of issues with these services, not least of which is trusting a third party with your data. There’s also the fact that these large services are highly tempting targets for hackers as a large number of user accounts means greater rewards when compromising the systems. Seafile a software that enables you to convert your own server into a Dropbox-like cloud file hosting solution for your own private use or to share with others.
Introducing Seafile
Seafile comes in a number of versions. There is an open source “Community Edition” which we will be looking at installing here and provides all the basic features you may need. There is also a “Pro Edition” that packs in additional features and (at the time of writing) is free for up to three users. For more than three users, there is a fee of $100 a year up to 10 users, after which a tiered per-user pricing strategy is used.
There is also client software for Windows, MacOS, Linux, Android and IOS to sync to your server. The community server software is available for Linux and Windows, although the Pro edition is only offered for Linux servers.
Installing Seafile
For the sake of this tutorial, we will assume that you have a VPS running either Debian 8 or Ubuntu 16.04 Linux distributions with nothing previously configured.
We’ll start by installing the dependencies:
sudo apt-get update
sudo apt-get install apache2 mysql-server php7.0 php7.0-mysql php7.0-gd php7.0-json php7.0-opcache php7.0-xml mcrypt php7.0-curl php7.0-gd php7.0-mbstring libapache2-mod-php7.0 php7.0-mcrypt php7.0-zip python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-mysqldb python-memcache python-urllib3
During this installation, you’ll be prompted to set a root password for MySQL. Remember the password you set here as you will need it later.
Once finished, you will need to download the latest Seafile version. First, create a directory to put Seafile into. Seafile recommends naming this after your organization, although the server’s hostname is equally valid as is the domain you use for it. In this case, I’ll call it fileserver. Then we’ll download and extract the Seafile code.
mkdir fileserver
cd fileserver
wget http://download.seadrive.org/seafile-server_6.2.5_x86-64.tar.gz
tar -xzf seafile-server*
mkdir installed
mv seafile-server_* installed
Note that we put the archive we downloaded into a directory called “installed” so that should something go wrong with one of the files in the installation, we can easily rectify this without needing to find the file online again.
Setting up Seafile
Now to set up Seafile. There’s a handy script in the directory created from the archive that can be run:
cd seafile-server-6.2.5
./setup-seafile-mysql.sh
This will ask you some questions such as for the name of the server, the domain you are using to access the server, where to store the data and the details of your MySQL server. This will be repeated to you at the end along with the commands needed to run seafile and seahub.
./seafile.sh start
./seahub.sh start
The first time you run Seahub it will ask you for some details to create an administrator account. Once completed, you can then connect to your server in a web browser by navigating to the following address in a web browser:
http://yourdomain.com:8000
Note here that you should replace yourdomain.com with the actual domain you have pointed at the server. You can then log in with the details you entered with the previous script. From this web interface you can manage the files you have stored on your Seafile server, as well as alter the server configuration or manage users when logged in as an administrator.