ShareFest, Web based P2P file sharing

ShareFest logoPlenty of services exist to share files, the famous one like Dropbox, Google drive, etc… or some services to selfhost such as Pydio, Owncloud, (already covered in this blog).


But not many are using Peer to Peer and even less are web based. But it’s the case of ShareFest and thanks to HTML5 WebRTC, no need of additional plugins to share your files.

Indeed, ShareFest, javascript-based, allow you and your user to simply drag and drop a file into their web browser to get a URL to share to anyone. Then the file transfer will be in P2P. Obviously, as soon as you leave the page, the transfer/sharing stop. But then, the more people having your URL open, the more seeders.

A demo is available here.

Let’s see now how to install ShareFest on your own server.


1) Install nodejs and npm

– If you use Ubuntu, simple run (as root)

apt-get install nodejs npm

– If you are on Debian (Wheezy?) like me, you can install nodejs from wheezy-backports (modify your source.list accordingly) and run (in root):

apt-get install nodejs nodejs-legacy curl

and for npm, you can use the installer

curl | sh

2) Clone their latest release into your /var/www folder

If you don’t have git installed, simply run:

apt-get install git

Then clone their repo

cd /var/www
git clone

3) Install the required dependencies with npm

cd ShareFest
npm install --dedupe

4) Start the service

npm start

and you should now be good to start!

Simply go to http://YourIP:13337

If you want to know more about ShareFest, you can check their growing FAQ.

Your next step could be to set up a virtualhost to have a more userfriendly URL like sf.domain.tld and even force SSL connection.


Virtualhost configuration

What you will need:

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

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

3) Create your virtualhost as following:

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

nano /etc/apache2/sites-enabled/sharefest

and paste the following content:

<VirtualHost *:80>
        ServerAdmin webmaster@domain.tld
        ServerName sf.domain.tld
        Redirect / https://sf.domain.tld

<IfModule mod_ssl.c>
<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/myblog.pem
        SSLCertificateKeyFile /etc/ssl/private/myblog.key

        ServerAdmin webmaster@domain.tld
        ServerName sf.domain.tld

        DocumentRoot /var/www/ShareFest
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        <Directory /var/www/ShareFest>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all

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

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

/etc/init.d/apache2 reload

Now your ShareFest instance should be fully working will SSL certificate and accessible through sf.domain.tld.


Loves to discover web-based apps to install on his own server@home and write articles about it


Add a comment